如何对DataFrame按日重采样并保留价格变更周期的数值
按日重采样并保留价格区间数值的解决方案
原始DataFrame
import pandas as pd df = pd.DataFrame({ 'date début': ['2021-04-01', '2021-04-10', '2021-04-16', '2021-06-10', '2021-08-01', '2021-08-10'], '€ / mois enerc': [40.86, 40.86, 33.69, 33.69, 37.71, 37.74], '€ / mois edf': [8.46, 8.46, 8.46, 8.46, 9.35, 9.35] })
实现步骤
转换日期格式并设置索引
将日期列转为datetime类型,同时设为DataFrame的索引,为后续重采样操作做准备:df['date début'] = pd.to_datetime(df['date début']) df = df.set_index('date début')生成完整的日度日期序列
创建从原始数据首个日期到最后一个日期的连续日序列:full_date_range = pd.date_range(start=df.index.min(), end=df.index.max(), freq='D')重新索引并向前填充价格
用完整日序列重新索引DataFrame,通过ffill()(向前填充)保留上一次的价格值,直到下一次价格变更:resampled_df = df.reindex(full_date_range).ffill()
结果片段
执行后得到的符合需求的结果示例:
€ / mois enerc € / mois edf 2021-04-10 40.86 8.46 2021-04-11 40.86 8.46 2021-04-12 40.86 8.46 2021-04-13 40.86 8.46 2021-04-14 40.86 8.46 2021-04-15 40.86 8.46 2021-04-16 33.69 8.46 2021-04-17 33.69 8.46 2021-04-18 33.69 8.46
内容的提问来源于stack exchange,提问作者BenjiBoy
相关产品推荐
相关产品推荐

