首页 > 解决方案 > 合并熊猫中的两个数据框

问题描述

我在下面有两个数据框:

import pandas as pd

data1 = {'date' : ['1', '2','3'],
     'value1' : ['a', 'b' ,'c'],
     'value2' : ['12','24','4']}
data2 = {'date' : ['2','3','4'],
     'value1' : ['b', 'c' ,'g'],
     'value2' : ['24','4','55']}

df1 = pd.DataFrame(data1)
df1 = df1.set_index('date')
df2 = pd.DataFrame(data2)
df2 = df2.set_index('date')

这是我想要的输出:

desired_result = {'date' : ['1','2','3','4'],
     'value1' : ['a', 'b', 'c', 'g'],
     'value2' : ['12', '24', '4', '55']}

我尝试了所有不同类型的合并、连接、连接,但无法弄清楚。谢谢你。

标签: pythonpandasjoinmerge

解决方案


这不完全是合并问题,但您可以使用combine_first

df1.combine_first(df2).reset_index()

  date value1 value2
0    1      a     12
1    2      b     24
2    3      c      4
3    4      g     55

另一个建议是concatand drop_duplicates

pd.concat([df1, df2]).reset_index('date').drop_duplicates('date')

  date value1 value2
0    1      a     12
1    2      b     24
2    3      c      4
5    4      g     55

推荐阅读