我正在开发一个 ArcGIS 项目,其中表包含时态数据,相关字段包含:
目标是通过对有数据的所有年份中每个邮政编码的所有应税销售额属性进行求和来计算第四个。例如。如果同一邮政编码的不同年份有 10 个属性,我想对所有 10 个属性的 Sales_Cumulative 中的所有 10 个销售单元格进行求和。
我尝试看看是否可以使用字段计算器功能,但还不够熟悉,无法弄清楚如何计算我需要的内容。
我的另一个选择是在 ArcGIS Pro 之外的 Excel 中对它们进行求和。
您可以使用工具
Summary Statistics
、Add Join
和Remove Join
。
Summary Statistics
计算累计年销售额Summary Statistics
连接您的表和
Zipcode
使用
Calculate Field
将 Sales_Cumulative
设置为 !Sales_Statistics.SUM_Sales_Annual!
使用
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”而无法读取数据。请参阅此处。