对两个不同长度的数据帧的列求和

时间:2017-08-09 04:56:05

标签: python pandas dataframe

我有两个数据帧:

DF1

    country  value
0      aa      1
1      bb      1
2      cc      5

DF2

     country  value
0      cc      8
1      aa      2
2      MM      1
3      FF      6

如何将此数据框(df1 + df2)设为如下:

    country  value
0      aa      3
1      bb      1
2      MM      1
3      cc      13
4      FF      6

2 个答案:

答案 0 :(得分:4)

set_indexaddfill_value=0

一起使用
df1.set_index('country').add(df2.set_index('country'),fill_value=0).reset_index()

输出:

  country  value
0      FF    6.0
1      MM    1.0
2      aa    3.0
3      bb    1.0
4      cc   13.0

答案 1 :(得分:4)

您可以先使用pd.concat连接,然后使用df.groupby

In [390]: pd.concat([df, df2]).groupby('country', as_index=False).sum()
Out[390]: 
  country  value
0      FF      6
1      MM      1
2      aa      3
3      bb      1
4      cc     13