tzo*_*zou 4 python rows dataframe pandas difference
我在Pandas中有一个如上所述的数据框:
A B C
0 1 10 43
1 2 12 34
2 1 9 57
3 2 7 47
4 1 6 30
5 2 10 31
Run Code Online (Sandbox Code Playgroud)
我想做的是根据A列计算每两行的差异(当A = 1-A = 2时,基本上得到所有其他列的差异)。所以,我想提出这样的事情:
B C
0 -2 9
1 2 10
2 -4 -1
Run Code Online (Sandbox Code Playgroud)
我知道diff()函数,但似乎没有完成我想要的事情。有办法吗?
您可以将索引的下限除以2,然后将结果用作分组器,然后使用DataFrame.diff():
df.groupby(df.index//2)['B','C'].diff(-1).dropna().reset_index(drop=True)
B C
0 -2.0 9.0
1 2.0 10.0
2 -4.0 -1.0
Run Code Online (Sandbox Code Playgroud)