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

Python Pandas实现按小时统计Niveau字段的最大、最小值

问题排查

你的代码运行不符合预期,是存在4个核心问题:

  • 列名拼写错误:CSV文件内的时间列名是Hour,代码中分组时写的是Heure,无法匹配到目标列
  • 统计逻辑错误:你需要的是每小时Niveau的最大值、最小值,现有代码调用mean()方法计算的是平均值,和需求不符
  • 分组粒度错误:CSV中存储的Hour字段是精确到秒的HH:MM:SS格式,直接分组会按每个独立的分钟/秒值拆分,无法实现按小时聚合的要求
  • 列名冗余空格问题:CSV表头的列名前后带有多余空格(比如第一列实际为Date 带尾部空格,第二列为 Hour带头部空格),不做处理会导致列名匹配失败
修正后可运行代码
import pandas as pd

# 读取CSV文件,指定分号为分隔符,自动跳过分隔符前后的冗余空格,清理列名
df = pd.read_csv('Cmaregraphe.csv', sep=';', skipinitialspace=True)

# 将Hour字段转为标准时间格式,提取小时数值作为分组维度
df['统计小时'] = pd.to_datetime(df['Hour']).dt.hour

# 按小时分组,聚合计算Niveau字段的最小值、最大值
hourly_result = df.groupby('统计小时')['Niveau'].agg(最小值='min', 最大值='max')

print("按小时统计Niveau极值结果:")
print(hourly_result)

# 如果你需要按「日期+小时」的维度统计(区分不同日期的同一小时),把分组字段改成['Date', '统计小时']即可
# daily_hour_result = df.groupby(['Date', '统计小时'])['Niveau'].agg(最小值='min', 最大值='max')
补充说明

运行后输出的结果中,每一行对应一个0-23点的小时段,最小值列为该小时段内所有Niveau记录的最小值,最大值列为对应小时段的最大值。如果需要导出结果,可以在代码末尾加hourly_result.to_csv('niveau_hourly_stats.csv')直接保存为CSV文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 07:09:18