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

如何将含datetime的DataFrame转为日期为行、小时为列并填充Demand值

解决方案

你可以通过日期透视的方式把现有数据转换成365行(天)×24列(小时)的结构,具体步骤如下:

  1. 确保date列是datetime类型(如果还没转换的话)
  2. 从datetime字段中提取日期(年月日)和小时作为新列
  3. 使用pivot方法重构数据结构,按需转为numpy数组

完整代码示例

import pandas as pd

# 确保date列为datetime类型(原数据未转换时执行)
df2['date'] = pd.to_datetime(df2['date'])

# 提取日期(仅年月日)和小时
df2['day'] = df2['date'].dt.date
df2['hour'] = df2['date'].dt.hour

# 透视:日期为行,小时为列,Demand值填充
df_daily_hourly = df2.pivot(index='day', columns='hour', values='Demand')

# 转为365×24的numpy数组(按需执行)
demand_array = df_daily_hourly.values

补充说明

  • 2021是平年,透视后的df_daily_hourly刚好是365行×24列的DataFrame
  • 如果存在缺失的小时记录,可通过df_daily_hourly.fillna(0, inplace=True)填充默认值
  • 最终的demand_array即为你需要的365×24数值数组

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 12:10:50