如何减去两个数据帧,部分公共索引

时间:2018-08-21 09:36:52

标签: python pandas dataframe

我有两个数据框a1,a2,它们的列和索引相同,但行不同。

a1:
    f     d         r   f
0   50.1  0 -1.374201  35
1   50.2  1  1.415697  29
2   70  3  0.233841  18
3   80  4  1.550599  30
4   90.2  5 -0.178370  63

a2:
    f     d         r   f
2   25  3  0.233841  18
3   95  4  1.550599  30

我想从a2中减去a1,所以a3 = a2-a1,

所以我会收到:

a3:
     f     d         r   f
2   -45  0  0  0
3   15  4  0  0

谢谢

1 个答案:

答案 0 :(得分:2)

这很简单,首先进行简单的减法运算,您将得到一个5x4的DataFrame,该结果仅在具有相同索引的行中有结果,其他将为NaN。然后,您删除NaN值:

a3 = a2-a1
a3.dropna(inplace=True)

我不确定为什么要在您期望的DataFrame中使索引3的d等于4。