我有2个数据框:d1列:['Text','Date','Date_with_affect']-以Id作为索引:
89,'你好',2018-03-05,2018-03-06
d2列:[“价格”,“开盘”,“高”,“低”,“成交量”,“更改”]-将日期设置为索引
2018-03-06,12,13,14,11,0,0.5
我想将新列添加到d1数据框中,这将是与d2中的“日期”匹配的“ Date_with_affect ” ,从而成为d2中的“更改”列。因此结果将是:
89,'你好',2018-03-05,2018-03-06,0.5
如果日期不在d2中,则应选择第二天。最简单的方法是什么?我试图这样做,但我猜完全错了。
d1["Change"] = d2[d1["Date_with_affect"]].Change
在这种情况下,我认为您可以使用merge_asof
(另外,我假设您的日期是datetime格式。如果不是,请尝试使用进行转换pd.to_datetime
):
pd.merge_asof(
d1,
d2.reset_index()[['Date','Change']],
left_on='Date_with_affect',
right_on='Date'
)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句