如何将Pandas DataFrame的96个15分钟列转为24小时平均列?
解决方案
可以通过Pandas的groupby方法按小时对列分组,再逐行计算均值来实现需求:
- 提取小时分组键:从原列名(如
00:00、00:15)中提取小时部分作为分组依据 - 按组求均值:沿列方向(
axis=1)分组后计算每行的平均值 - 格式化列名(可选):将分组后的列名调整为
XX:00的标准格式
示例代码
假设你的DataFrame名为df:
# 提取列名的小时部分作为分组键 hour_groups = df.columns.str.split(':').str[0] # 按小时分组,计算每行的平均值 hourly_df = df.groupby(hour_groups, axis=1).mean() # 可选:将列名格式化为 XX:00 的形式 hourly_df.columns = [f"{hour}:00" for hour in hourly_df.columns]
处理完成后,hourly_df就是包含24小时列的新DataFrame,每列对应原数据中对应小时内4个15分钟数据的行均值。
内容的提问来源于stack exchange,提问作者Jessy
相关产品推荐
相关产品推荐

