join,连接两个基于重复列pandas python的数据帧

时间:2017-10-25 09:10:12

标签: python pandas join dataframe concatenation

我有2个数据框:

DF1:

date     column1           
2014-03-13   1
2014-03-14   2

D2:

    date        Id people  value                      
2014-03-13   1      A   -3.0
2014-03-13   1      B   -6.0
2014-03-14   1      A   -3.1
2014-03-14   2      B   -5.0

我希望得到一个df3 =

     date   Id people  value   column1

2014-03-13   1      A   -3.0      1
2014-03-13   1      B   -6.0      1
2014-03-14   1      A   -3.1      2
2014-03-14   2      B   -5.0      2

我尝试使用pandas的函数连接但是我有任何方法可以解决它的错误

2 个答案:

答案 0 :(得分:3)

只需写下:

df3 = df2.merge(df1, on='date', how='left')

答案 1 :(得分:1)

如果merge中的加入列仅为date,则仅使用DataFrames

df = pd.merge(df2, df1, how='left')
df['new'] = df2['date'].map(df2.set_index('date')['column1'])

同时检查dtypes s中的DataFrame是否相同:

print (df1['date'].dtype)
print (df2['date'].dtype)

如果没有,请将列转换为datetime,例如:

df1['date'] = pd.to_datetime(df1['date'])