2017-05-09 65 views
1

我想從兩個dataframes一起添加數據這樣的:我怎麼能加在一起的兩個數據dataframes

>>> df1 = pd.DataFrame({'col1': [1, 2, 3], 'col2': [2, 3, 2], 
'col3': ['aaa', 'bbb', 'ccc']}) 
>>> df1 
    col1 col2 col3 
0  1  2 aaa 
1  2  3 bbb 
2  3  2 ccc 

    >>> df2 = pd.DataFrame({'col1': [4, 4, 5], 'col2': [4, 4, 5], 
'col3': ['some', 'more', 'third']}) 

>>> df2 
    col1 col2 col3 
0  4  4 some 
1  4  4 more 
2  5  5 third 

我想結果是:

>>> result 
    col1 col2 col3 
0  4  4 some 
1  4  4 more 
2  9  7 third 
3  1  2 aaa 
4  2  3 bbb 

也就是說:如果存在具有相同值的col3,則該條目的col1 + col2應加在一起。 如果它不存在,那麼這些行應該被複制。 行的順序並不重要,我不需要保留df1和df2,我只關心後面的結果。

什麼是實現這一目標的最佳途徑?

我剛剛從不同的csv文件加載的數據看起來完全一樣,所以也許有另一種方法可以做到這一點? 結果我只是想再次保存爲一個csv文件,看起來像上面。

回答

2

我們使用pd.concatgroupby來求和值。

pd.concat([df1,df2]).groupby('col3').sum().reset_index().reindex_axis(['col1','col2','col3'],axis=1) 

輸出:

col1 col2 col3 
0  1  2 aaa 
1  2  3 bbb 
2  4  4 more 
3  4  4 some 
4  9  7 third