我有两个将从 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
