Pandas连接DataFrames,保持一列

时间:2018-02-28 19:22:36

标签: python pandas

我有两个DataFrame:

>>> df1
              above below
asn   country
12345 US      5     4
      MX      6     3
54321 MX      4     5
>>> df2
              above below
asn   country
12345 MX      1     0
54321 MX      0     1
      US      1     0

请注意,虽然有一些常见索引(12345/MX54321/MX),但有些索引仅显示在df112345/US)中,而某些索引仅显示在df254321/US

我希望将这些值一起添加,以便如果df1中不存在某行,则会添加该行,如果df2中不存在行,则计数不受影响。

期望的输出:

>>> (df1 + df2, somehow)
12345 US      5     4
      MX      7     3
54321 MX      4     6
      US      1     0

发生了什么事:

>>> df1 + df2
12345 US      NaN   NaN
      MX      7.0   3.0
54321 MX      4.0   6.0
      US      NaN   NaN

1 个答案:

答案 0 :(得分:3)

addfill_value参数一起使用:

df1.add(df2, fill_value=0)

输出:

               above  below
asn   country              
12345 MX         7.0    3.0
      US         5.0    4.0
54321 MX         4.0    6.0
      US         1.0    0.0

而且,你可以astype回到整数:

df1.add(df2, fill_value=0).astype(int)

输出:

               above  below
asn   country              
12345 MX           7      3
      US           5      4
54321 MX           4      6
      US           1      0