如何用Python Pandas对2018-2021年逐小时数据按小时时段求和
按小时汇总四年逐小时数据的Pandas实现
你的需求是把2018-2021年逐小时数据中,同一小时(00:00-23:00)的所有数据分别求和,基于你已有的代码,补充以下步骤即可实现:
首先修正日期范围的小问题(你当前代码里的结束时间23:50:00和1小时频率不匹配,建议调整),然后通过提取小时维度分组求和:
完整代码示例
import pandas as pd # 你的现有代码(修正日期范围) binstas = pd.DataFrame(ch) df = binstas.copy() # 修正结束时间为23:00:00,确保时间序列完整覆盖到最后一小时 df['new_column'] = pd.Series(pd.date_range('2018-01-01 00:00:00', '2021-12-31 23:00:00', freq='1H')) df = df.set_index('new_column') # 核心步骤:按小时分组求和 # 假设你的数值列是唯一的非索引列,直接sum即可;如果有特定列名,比如'value',则写df.groupby(df.index.hour)['value'].sum() hourly_total = df.groupby(df.index.hour).sum() # 按预期格式输出 for hour, total in hourly_total.iterrows(): # 如果是单列数据,取total.iloc[0];多列的话按需调整 print(f"{hour:02d}:00 = {total.iloc[0]}")
代码说明
- 修正日期范围:确保时间序列的结束时间和1小时频率匹配,避免生成多余或缺失的时间点。
- 分组求和:
df.index.hour会从时间索引中提取0-23的小时数值,以此为分组依据对所有数据求和,得到每个小时的四年总合。 - 格式化输出:通过循环将结果转换成你需要的
HH:00 = 总和格式。
内容的提问来源于stack exchange,提问作者iyya
相关产品推荐
相关产品推荐

