操作方法

操作方法:根据 ArcGIS Pro 中另一个字段的字符数填充字段

Last Published: April 2, 2024

描述

在 ArcGIS Pro 中,Python len() 函数可用于字段计算,以计算并返回文本字段中的字符数。 例如,函数可用于表达式,以根据另一个字段中单元格的字符数填充字段的值,这在使用标准化代码或首字母缩略词时非常有用。

下图显示了 ArcGIS Pro 中要素属性表中包含首字母缩略词的 'Category' 字段。 在本文中,如果 'Category' 字段中的值包含三个或两个字符而不是四个字符,则新字段将填充其他字符。

在 ArcGIS Pro 的属性表中包含要统计的字符的字段
Note:
The workflow in this article can only be applied to fields with the text data type, as the len() function is used to count the characters in a string.

解决方案或解决方法

  1. 在 ArcGIS Pro 中打开工程。
  2. 内容窗格中,右键单击要素图层,然后单击属性表
右键单击“内容”窗格中的图层后的“属性表”按钮
  1. 在属性表视图中,单击添加字段以添加新的文本字段。
    1. 在字段视图的字段名称列中,指定新字段的名称。 在此示例中,字段名称为 ‘Code’。
    2. 数据类型列下,双击该单元格以打开下拉菜单,然后单击文本
在字段视图中添加新字段
  1. 字段选项卡的更改组中,单击保存。 关闭字段视图。
  1. 在属性表中,右键单击新添加的字段,然后单击计算字段。 本例中使用了 ‘Code’ 字段。
右键单击属性表中的字段后的“计算字段”按钮
  1. 使用 IF 语句和 len() 函数构建表达式,以根据另一个字段的字符数填充新字段的值。 在计算字段窗口中,配置以下参数:
    1. 对于表达式类型,选择 Python 3
    2. 代码块框上方文本框的表达式中,输入以下脚本。 将 <fieldName> 替换为包含要统计的字符的输入字段的名称。 在此示例中,输入字段是 ‘Categories’ 字段。
calculate_field(!<fieldName>!)
    1. 代码块框中,输入以下脚本。 将 <field> 替换为所需的变量名称,将 <characters > 替换为要统计的输入字段中的字符数,将 <value> 替换为要添加到新字段的文本值。
      • 使用 if...else 语句。
def calculate_field(<field>):
    if (len(<field>) == <characters>):
        return ("<value>" + <field>)
    else:
        return (<field>)
  • 使用 if...elif...else 语句。
def calculate_field(<field>):
    if (len(<field>) == <characters>):
        return ("<value>" + <field>)
    elif (len(<field>) == <characters>):
        return ("<value>" + <field>)
    else:
        return (<field>)
Note:
The if…elif..else statement is used to include more than a single number of characters from the input field to be counted.

以下代码块显示了使用 if…else 语句的完整工作表达式。

def calculate_field(cat):
    if (len(cat) == 3):
        return ("A" + cat)
    else:
        return (cat)

以下代码块显示了使用 if…elif…else 语句的完整工作表达式。

def calculate_field(cat):
    if (len(cat) == 3):
        return ("A" + cat)
    elif (len(cat) == 2):
        return ("AA" + cat)
    else:
        return (cat)
在“计算字段”窗口中配置参数
  1. 单击确定

下图显示了如果 ‘Category’ 字段值包含三个或两个字符而不是四个字符,则填充了附加字符“A”或“AA”的 ‘Code’ 字段。

新字段根据另一个字段中的字符数填充值

文章 ID: 000032254

获得人工智能支持

使用 Esri Support AI Chatbot 快速解决您的问题。

立即开始聊天

相关信息

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

获取来自 ArcGIS 专家的帮助

联系技术支持部门

立即开始聊天

转至下载选项