基于条件语句熊猫的输入列
问题描述:
我有两个熊猫数据框,并希望在日期匹配的DF1中插入来自DF2值的日期和星期列。例如例如以下,第4天和第1周将从DF2第1行中提取,并插入到DF1中的所有日和周列中。基于条件语句熊猫的输入列
DF 1
montgomery year date day week
0.0 2016 04/01/2016
0.0 2016 04/01/2016
0.0 2016 04/01/2016
0.0 2016 04/01/2016
DF 2
date day week
04/01/2016 4 1
05/01/2016 5 1
06/01/2016 6 1
我已经调查使用numpy的条件语句,但还没有达到解决,感谢
答
IIUC你需要to_datetime
与merge
:
#if empty columns in DF1, remove them
DF1 = DF1.drop(['day','week'], axis=1)
#convert columns to datetimes
DF1.date = pd.to_datetime(DF1.date)
DF2.date = pd.to_datetime(DF2.date)
print (pd.merge(DF1,DF2, how='left', on='date'))
montgomery year date day week
0 0.0 2016 2016-04-01 4 1
1 0.0 2016 2016-04-01 4 1
2 0.0 2016 2016-04-01 4 1
3 0.0 2016 2016-04-01 4 1
不'df1.combine_first(DF2)'工作 – EdChum
如果您的日期是日期时间或字符串,并在你的第二个DF的日期格式是从你的例子显示不清短短一年格式,你可以澄清这 – EdChum