You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将准日度汽油价格DataFrame填充为小时级以匹配电价数据?

问题

我有一份本地汽油价格的DataFrame,想和电价DataFrame结合分析,但汽油数据是准日度,电价是小时级。需要把每日汽油价格值复制,适配到电价DataFrame的小时级维度,或者有没有更智能的方式直接在电价DataFrame里引用汽油价格?

我的汽油数据如下:

Price   
Date                    
2022-10-20  16.19
2022-10-19  16.49
2022-10-18  16.69
2022-10-15  16.99

因为要做小时级对比分析,所以把电价平均到日度的方案不可行。我尝试了下面的代码,但执行失败:

df.set_index('DateTime').resample('H').pad()
解决方案

方法1:将汽油数据重采样为小时级

你的代码执行失败大概率是因为汽油数据的索引已经是Date(日期类型),不需要再用set_index('DateTime')。正确操作步骤如下:

  1. 确保汽油数据的索引是日期时间类型(如果不是先转换):
import pandas as pd

# 假设你的汽油DataFrame叫gas_df
gas_df.index = pd.to_datetime(gas_df.index)
  1. 重采样到小时级并填充值(用pad()或ffill()向前填充,保证当天24小时都用同一日的汽油价格):
# 如果要匹配电价数据的时间范围,假设电价DataFrame叫elec_df
gas_hourly = gas_df.resample('H').pad().reindex(elec_df.index)

生成的gas_hourly会和电价DataFrame的小时级索引完全匹配,之后直接合并即可:

combined_df = pd.concat([elec_df, gas_hourly], axis=1)

方法2:直接在电价DataFrame中匹配日期引用汽油价格

不需要提前扩展汽油数据,而是通过提取电价时间的日期部分,直接关联汽油价格,内存占用更小,适合数据量较大的场景:

  1. 从电价DataFrame的时间索引(假设是DateTime)中提取日期:
elec_df['Date'] = elec_df.index.date
  1. 用merge方法关联汽油价格(能自动处理缺失日期的情况):
# 把汽油数据的索引转为列,方便合并
gas_df_reset = gas_df.reset_index().rename(columns={'Date': 'Date'})
# 合并两个DataFrame
combined_df = elec_df.merge(gas_df_reset, on='Date', how='left')

内容的提问来源于stack exchange,提问作者GregersDK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 05:01:12