映射到Pandas中的相似时间

时间:2017-02-02 00:51:59

标签: pandas

我有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中是否有更好的方法可以做到这一点?

1 个答案:

答案 0 :(得分:1)

使用pd.DataFrame.reindex

  • set_index
  • sort_index
  • reindexmethod='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