2017-05-09 15 views
1

のデータを追加することができます。どのように私は一緒に私はこのように2つのデータフレームから一緒にデータを追加したい2つのデータフレーム

>>> 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 
関連する問題