操作方法

操作方法:在 ArcGIS Pro 中计算指定字段中字段值的百分比

Last Published: March 3, 2023

摘要

在 ArcGIS Pro 中,可以使用 Python 表达式来计算指定字段中字段值的百分比。本文提供了在 ArcGIS Pro 中使用 Python 表达式来计算香港每个区的人口百分比并创建一个新字段的示例和说明。

下图显示了香港每个区的人口的 PopDis2021 属性表。

PopDist2021 属性表

过程

  1. 内容窗格中,右键单击要素类,然后单击属性表以打开要素类的属性表。
从“内容”窗格中打开要素类的属性表
  1. 单击计算以打开计算字段工具。
Note:
Refer to ArcGIS Pro: Calculate Field (Data Management) for more information on the parameters in the Calculate Field tool.
  1. 计算字段对话框中,配置以下参数:
    1. 对于输入表,选择要素类。
    2. 对于字段名称(现有或新建),选择要进行编辑的字段或者创建新字段。 在本示例中,需要创建“Percentage”字段。
    3. 对于字段类型,选择整型字段类型。 在本示例中,需要选择“双精度型(64 位浮点型)”。
    4. 对于表达式类型,选择 Python 3
    5. 在第一个代码块中指定以下表达式: 在本示例中,需要将“<fieldName1>”命名为 Number_of_Persons
update(!<fieldName1>!)
  1. 代码块中指定以下 Python 表达式:
    1. 定义 update() 方法。 在本示例中,需要将“<varName>”命名为 numbPersons
def update(<varName>):
Note:
The following procedure must all be within the same indented code block. Refer to the full script sample for clarification.
  1. 导入 ArcPy 模块并创建一个空的数组参数。
     import arcpy    
     list = []
  1. 创建一个循环以运行 SearchCursor() 函数,以将所有字段插入步骤 3(f)(ii) 中的数组参数中。
    with arcpy.da.SearchCursor(r"<featureClassPath>", ["<fieldName1>"]) as cursor:
        for row in cursor:
            list.append(row[0])
  1. 计算值的总和。 在本示例中,需要将“<varName1>”命名为 S
    <varName1> = sum(list)
  1. 指定以下语句以返回字段值的百分比:
    return <varname> / <varname1> * 100

以下代码块为完整表达式示例。

def update(numbPersons):
    import arcpy
    list = []
    with arcpy.da.SearchCursor(r"C:\Users\ISC-Testing\Documents\29398 calculate percentage\29398 calculate percentage.gdb\PopDist2021", ["Number_of_Persons"]) as cursor:
        for row in cursor:
            list.append(row[0])
    S = sum(list)
    return numbPersons / S * 100
  1. 单击验证以运行表达式测试。 如果表达式有效,请单击确定
“计算字段”工具窗格包含要填充的参数

下图显示了“Percentage”字段已添加至“PopDist2021”属性表。

已添加 Percentage 字段的 PopDist2021 属性表

文章 ID: 000029398

接收通知并查找新问题或常见问题的解决方案

从我们全新的 AI 聊天机器人中获得简明答案和视频解决方案。

下载 Esri 支持应用程序

相关信息

发现关于本主题的更多内容

获取来自 ArcGIS 专家的帮助

联系技术支持部门

下载 Esri 支持应用程序

转至下载选项