如何在Pandas DataFrame中创建分组统计的子列汇总表
水质数据分组汇总表实现方案
直接用pandas的groupby+describe()就能高效生成你要的格式,不用单独计算每个统计量,步骤如下:
1. 核心代码实现
假设你的DataFrame已经读取完成(命名为df),按以下步骤操作:
# 1. 定义需要分析的参数列(根据你Excel里的实际列名调整) target_cols = ['pH', 'Temp', 'Salinity'] # 比如你的代码里是['pH', 'Temperature (°C)', 'SAL (ppt)'] # 2. 分组后提取指定统计量(min/max/mean/std) grouped_data = df.groupby('Monitoring ID')[target_cols].describe()[['min', 'max', 'mean', 'std']] # 3. 调整列层级与结构,匹配目标表格样式 final_table = grouped_data.unstack(level=0).T # 4. 可选:设置数值精度(比如保留2位小数) final_table = final_table.round(2)
2. 代码说明
describe()会一次性生成所有常用统计量,我们直接筛选min/max/mean/std四个需要的即可,省去单独计算的麻烦unstack(level=0)把分组的Monitoring ID(地表水/地下水)转成列的上层维度,再用.T转置,让参数(pH/Temp/Salinity)成为行索引,完美匹配你要的表格结构
3. 输出与保存
- 直接打印查看:
print(final_table) - 保存到Excel:
final_table.to_excel('水质汇总表.xlsx')
内容的提问来源于stack exchange,提问作者Laura M.
相关产品推荐
相关产品推荐

