ArcGIS Pro表字段计算:按Zipcode汇总Sales_Annual至Sales_Cumulative
ArcGIS属性表按Zipcode批量计算累计销售额方案
方法1:汇总统计+连接更新(可视化工具流)
- 打开汇总统计数据工具(路径:分析工具 → 统计分析 → 汇总统计数据)
- 输入表:选择你的目标要素类/属性表
- 输出表:指定一个临时存储路径(比如
in_memory\zip_sales_sum,用内存表更快) - 统计字段:选
Sales_Annual,统计类型勾选求和 - 案例分组字段:选
Zipcode
- 执行工具后,右键原属性表 → 连接和关联 → 连接
- 连接字段:原表的
Zipcode与汇总表的Zipcode
- 连接字段:原表的
- 右键
Sales_Cumulative字段 → 字段计算器,直接输入!SUM_Sales_Annual!(汇总表的求和字段名,默认是SUM_加原字段名),点击确定完成赋值 - 最后移除连接,删除临时汇总表
方法2:字段计算器Python脚本(一步到位)
- 打开属性表,右键
Sales_Cumulative字段 → 字段计算器 - 切换到Python解析器,勾选显示代码块
- 在「预逻辑脚本代码」框中粘贴以下代码(替换
你的要素类/图层名为实际名称):
sum_dict = {} # 遍历所有记录计算每个Zipcode的销售额总和 with arcpy.da.SearchCursor("你的要素类/图层名", ['Zipcode', 'Sales_Annual']) as cursor: for zip_code, sales in cursor: # 处理空值,避免报错 sales = sales if sales is not None else 0 sum_dict[zip_code] = sum_dict.get(zip_code, 0) + sales def get_cumulative(zip): return sum_dict.get(zip, 0)
- 在表达式框中输入:
get_cumulative(!Zipcode!) - 点击确定,所有记录的
Sales_Cumulative会自动填充对应Zipcode的总销售额
注意事项
- 方法2中如果是当前地图里的图层,直接写图层名称即可;如果是磁盘上的要素类,要写完整路径
- 若
Sales_Annual字段存在大量空值,预逻辑里的空值处理可以保证计算结果准确
内容的提问来源于stack exchange,提问作者raygo
相关产品推荐
相关产品推荐

