我有一个多索引数据集,我在其中创建了基于日内数据的每日数据列。这个工作正常,我每天都有结果。但是,当我要将结果添加到原始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
答案 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