ArcGIS Pro 表字段计算:多个属性具有相同值的字段之和

问题描述 投票:0回答:1

我正在开发一个 ArcGIS 项目,其中表包含时态数据,相关字段包含:

  • 邮政编码
  • 年份
  • 销售额_年度
  • 销售额_累计

目标是通过对有数据的所有年份中每个邮政编码的所有应税销售额属性进行求和来计算第四个。例如。如果同一邮政编码的不同年份有 10 个属性,我想对所有 10 个属性的 Sales_Cumulative 中的所有 10 个销售单元格进行求和。

我尝试看看是否可以使用字段计算器功能,但还不够熟悉,无法弄清楚如何计算我需要的内容。

我的另一个选择是在 ArcGIS Pro 之外的 Excel 中对它们进行求和。

attributes field arcgis temporal
1个回答
0
投票

您可以使用工具

Summary Statistics
Add Join
Remove Join

  1. 使用
    Summary Statistics
    计算累计年销售额
  1. 使用字段
    Summary Statistics
     连接您的表和 
    Zipcode
  2. 的结果
  1. 使用

    Calculate Field
    Sales_Cumulative
    设置为
    !Sales_Statistics.SUM_Sales_Annual!

  2. 使用

    Remove Join

    删除连接

这是模型的屏幕截图:


或者,您可以使用 Python 和支持空间的 DataFrame

import pandas as pd

from arcgis.features import GeoAccessor, GeoSeriesAccessor

table = r"Default.gdb\Sales"

# load table
sdf = pd.DataFrame.spatial.from_table(filename=table, skip_nulls=False)

# calulate the total sales by zip code 
total_sales_by_zipcode = sdf.groupby(["Zipcode"])["Sales_Annual"].sum()

sdf["Sales_Cumulative"] = sdf["Zipcode"].apply(lambda x: total_sales_by_zipcode[x])

sdf.spatial.to_table(location=table, overwrite=True)

备注:

  • 这会覆盖您的表格。
  • 使用
    sdf.spatial.to_table
    时,所有字段名称突然变成小写。
  • 读取表格时使用
    skip_nulls
    ,否则由于“bug”而无法读取数据。请参阅此处
© www.soinside.com 2019 - 2024. All rights reserved.