三字段统计层次分析:按区域-土地利用类型自动统计温度统计量
自动按区域-土地利用类型统计温度统计量的方法
针对你的需求,有两种高效的自动处理方案,适配数千条规模的数据集:
一、用Excel内置功能实现(无需代码)
1. 数据透视表法
- 选中数据集所有单元格,点击菜单栏插入 > 数据透视表,选择结果放置位置(新工作表或当前工作表均可)
- 在数据透视表字段面板中操作:
- 将
District拖到「行」区域,再把Land Use拖到「行」区域(放在District下方,实现层级分组) - 将
Temperature多次拖到「值」区域,分别修改每个值字段的计算类型:- 点击值字段下拉菜单 > 值字段设置,按需选择「平均值」「中位数」「标准差」(注意区分总体/样本标准差)
- 将
- 调整透视表排版,就能得到层级化的统计结果,可手动调整格式匹配你要的示例样式
2. Power Query批量处理
- 点击数据 > 获取数据 > 自文件 > 自工作簿,导入你的Excel数据集
- 在Power Query编辑器中,点击开始 > 分组依据,设置:
- 分组依据:添加
District和Land Use两个分组字段 - 新列名分别设为
均值「中位数」「标准差」,对应操作选「平均值」「中位数」「标准差」,关联列均选Temperature
- 分组依据:添加
- 点击关闭上载,将处理结果加载到工作表,后续可手动调整成目标文本格式
二、用Python Pandas实现(高效处理大规模数据)
如果数据集需要频繁处理,代码方案更高效,步骤如下:
- 先安装依赖库:
pip install pandas openpyxl
- 运行以下代码:
import pandas as pd # 替换为你的Excel文件路径 df = pd.read_excel("你的数据集文件.xlsx") # 按区域+土地利用类型分组,计算指定统计量并保留两位小数 stats_df = df.groupby(['District', 'Land Use'])['Temperature'].agg( mean='mean', median='median', std='std' ).round(2) # 输出为你期望的文本格式 for district in stats_df.index.get_level_values(0).unique(): print(f"Temperature District {district}") district_data = stats_df.loc[district] for land_use, row in district_data.iterrows(): print(f" {land_use:15} mean = {row['mean']} , median = {row['median']} , Std. = {row['std']}") print()
如果需要保存结果到文件,可添加这段代码:
with open("温度统计结果.txt", "w", encoding="utf-8") as f: for district in stats_df.index.get_level_values(0).unique(): f.write(f"Temperature District {district}\n") district_data = stats_df.loc[district] for land_use, row in district_data.iterrows(): f.write(f" {land_use:15} mean = {row['mean']} , median = {row['median']} , Std. = {row['std']}\n") f.write("\n")
内容的提问来源于stack exchange,提问作者kamyar1986
相关产品推荐
相关产品推荐

