使用不同列减去DataFrame

时间:2017-06-13 14:19:52

标签: python pandas dataframe

我有一个DataFrame df1,其中包含ABD列。

| A | B | D |
-------------
| 1 | 5 | 3 |
| 2 | 3 | 1 |

以及包含df2B列的DataFrame C

| B | C |
---------
| 0 | 2 |
| 3 | 5 |

它们具有相同的行数。

我想逐个减去它们(df1 - df2)。但是每一个都有另一个没有的列。

我想要的结果DataFrame看起来像这样:

| A | B |  C | D |
------------------
| 1 | 5 | -2 | 3 |
| 2 | 0 | -5 | 1 |

这很容易吗?

1 个答案:

答案 0 :(得分:3)

您可以先align两个数据帧的列索引,用零填充缺失值,然后进行减法(假设两个数据帧具有相同的行索引):

df1, df2 = df1.align(df2, fill_value=0)    
df1 - df2
#   A   B    C  D
#0  1   5   -2  3
#1  2   0   -5  1

或使用combine方法:

df1.combine(df2, pd.Series.sub, fill_value=0)
#   A   B      C    D
#0  1   5   -2.0    3
#1  2   0   -5.0    1