无法将每日数据上采样到日内df

时间:2019-12-11 22:01:20

标签: python pandas

我有一个多索引数据集,我在其中创建了基于日内数据的每日数据列。这个工作正常,我每天都有结果。但是,当我要将结果添加到原始df时,该列为NaN。

据我了解,这是因为原件的日期{strong>和是DateTimeIndex,而日期的日期只有DateTimeIndex,所以它们从不重叠,这意味着我无法合并。也不能选择上采样(ValueError: Upsampling from level= or on= selection is not supported, use .set_index(...) to explicitly set index to datetime-like)。我该如何使用set_index进行处理,或者将每天的每个DateTime与当天的日期相对应。

每日示例:

                              Col1
DateTime         Name
2019-12-12       ABC          1
2019-12-12       DDD          5
2019-12-13       ABC          2
2019-12-13       DDD          6
2019-12-13       WWW          0

所需的盘中结果:

                                       Col1
DateTime                  Name
2019-12-12 09:10:00       DDD          5
2019-12-12 09:15:00       DDD          5
2019-12-13 09:10:00       DDD          6
2019-12-13 09:15:00       DDD          6
2019-12-13 09:20:00       DDD          6

1 个答案:

答案 0 :(得分:1)

IIUC:

idx = pd.MultiIndex.from_arrays(
          [df2.index.get_level_values(level=0).normalize(),
           df2.index.get_level_values(level=1)
          ])

df2['Col1_'] = df1.loc[idx, 'Col1'].values

输出:

                          Col1  Col1_
DateTime            Name             
2019-12-12 09:10:00 DDD      5      5
2019-12-12 09:15:00 DDD      5      5
2019-12-13 09:10:00 DDD      6      6
2019-12-13 09:15:00 DDD      6      6
2019-12-13 09:20:00 DDD      6      6