Skip to main content
 首页 » 编程设计

python之结合两个数据框并显示它们的区别之Python Pandas

2025年05月04日23birdshome

我有两个将从 CSV 文件中提取的数据框:

   X     Value 1  Value 2 
0  1     2        1       
1  3     4       -2       
2  3     3        8       
3 -1     4        2       
4  6    -8        2       
5  0     10       1 
 
   X     Value 1  Value 2 
0  1     2        1       
1  3     4       -1       
2  3     4        8       
3 -1     4        2       
4  6    -8        2       
5  0     9        1  

我想使用 Python Pandas 得到这样的输出,它是第二个数据框,但对于任何已更改的值,括号中的正/负值将显示其更改量:

   X     Value 1  Value 2 
0  1     2        1       
1  3     4       -1 (+1)      
2  3     4 (+1)   8       
3 -1     4        2       
4  6    -8        2       
5  0     9 (-1)  1  

我在网上找到的唯一接近于使用 Panels 的解决方案的方法已被弃用,因此我想避免使用它们。此外,我希望最终输出是一个数据框,以便我可以对其应用样式。

请您参考如下方法:

您可以获得 df2 和 df1 之间的区别并创建 + 或 - 标志,然后将其附加到 df2。

df2.astype(str) + \ 
(df2-df1).applymap(lambda x: ' ({}{})'\ 
                   .format('+' if x > 0 else '', str(x)).replace('(0)','')) 
 
Out[240]:  
     X Value 1  Value 2 
0   1       2        1  
1   3       4   -1 (+1) 
2   3   4 (+1)       8  
3  -1       4        2  
4   6      -8        2  
5   0   9 (-1)       1