类似于cumsum的一系列列之间的差异

时间:2019-06-08 05:25:23

标签: python pandas

我正在尝试找出Pandas中一系列专栏之间的区别。列数更改。输入和输出看起来像这样:

import pandas as pd
d={'A':[1,2,3,4],\
'B':[2,3,6,1],\
'C':([6,5,4,1]),\
'D':[1,2,3,4]}

pd.DataFrame(data=d)
   A  B  C  D
0  1  2  6  1
1  2  3  5  2
2  3  6  4  3
3  4  1  1  4

o={'B':[1,1,3,-3],\
   'C':[4,2,-2,0],\
   'D':[-5,-3,-1,3]}
pd.DataFrame(data=o)

   B  C  D
0  1  4 -5
1  1  2 -3
2  3 -2 -1
3 -3  0  3

有没有类似于大熊猫积木的解决方案,或者我需要编写一系列循环吗?

1 个答案:

答案 0 :(得分:1)

您可以使用DataFrame.diff执行按列比较:

df.diff(axis=1).iloc[:, 1:]

     B    C    D
0  1.0  4.0 -5.0
1  1.0  2.0 -3.0
2  3.0 -2.0 -1.0
3 -3.0  0.0  3.0

df.diff(axis=1).dropna(how='all', axis=1).astype(int)

   B  C  D
0  1  4 -5
1  1  2 -3
2  3 -2 -1
3 -3  0  3