2017-08-09 81 views
3

兩個dataframes的列我有兩個dataframes:總長度不同

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 
+0

https://開頭stackoverflow.com/he LP /人,答案 –

回答

4

使用​​和addfill_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 
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