我有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的函数连接但是我有任何方法可以解决它的错误
答案 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'])