我有2个数据帧,如下所示:
date/time
0 2/1/2016 10:32
1 2/1/2016 06:58
2 2/1/2016 01:47
date/time Quantity
0 2/1/2016 01:30 4
1 2/1/2016 10:45 6
2 2/1/2016 06:50 3
我正在尝试将“数量”列从第二个数据帧映射到第一个数据帧,基于日期时间加上或减去30分钟。所以我的最终数据框是这样的:
date/time Quantity
0 2/1/2016 10:32 6
1 2/1/2016 06:58 3
2 2/1/2016 01:47 4
我尝试为不同的方案添加其他列,映射每个附加列,然后删除所有丢失的行 - 我想知道在Pandas中是否有更好的方法可以做到这一点?
答案 0 :(得分:1)
使用pd.DataFrame.reindex
set_index
sort_index
reindex
与method='nearest'
和tolerance=pd.offsets.Minute(30)
df2.set_index(
'date/time'
).sort_index().reindex(
df1['date/time'],
method='nearest',
tolerance=pd.offsets.Minute(30)
).reset_index()
date/time Quantity
0 2016-02-01 10:32:00 6
1 2016-02-01 06:58:00 3
2 2016-02-01 01:47:00 4