【发布时间】:2020-01-11 11:52:35
【问题描述】:
我有两个数据框。
pd.DataFrame({'date': {10: Timestamp('2019-01-01 10:00:00'), 52: Timestamp('2019-01-03 04:00:00'), 54: Timestamp('2019-01-03 06:00:00'), 72: Timestamp('2019-01-04 00:00:00'), 74: Timestamp('2019-01-04 02:00:00')}, 'value_1': {10: 4380.0, 52: 4440.0, 54: 4630.0, 72: 4540.0, 74: 4460.0}, 'value_2': {10: 5, 52: 5, 54: 1, 72: 5, 74: 1}})
DF1
date value_1 value_2
10 2019-01-01 10:00:00 4380.0 5
52 2019-01-03 04:00:00 4440.0 5
54 2019-01-03 06:00:00 4630.0 1
72 2019-01-04 00:00:00 4540.0 5
74 2019-01-04 02:00:00 4460.0 1
DF2 包含与 DF1 相同的日期列,从 2019-01-01 00:00:00 开始,到 2019-12-31 00:00:00 结束,以及其他不常见的列。
如果 DF1 和 DF2 中的日期与以下代码匹配,我已将 DF1 中的 values_1 值放入 DF2:
DF2['value_1'] = DF2['date'].map(DF1.set_index('date')['value_1'])
现在我正在尝试将匹配日期的最后 30 分钟的相同值放入 DF2。换句话说,如果匹配的日期和时间让我们说2019-01-01 10:00:00 并且value_1 是4380.0。那么对于 DF2 中从 2019-01-01 09:30:00 到 2019-01-01 10:00:00 的日期,value_1 列应该是 4380.0。
我该怎么做?
【问题讨论】: