如何在OpenRefine自定义文本转换中实现美国州名替换为United States
在OpenRefine中批量替换美国州名为“United States”的方法
操作步骤
选中你的
Country列,点击列标题旁的下拉菜单,选择编辑列 → 替换列(或添加列) → 自定义文本转换。- 选「替换列」会直接修改原数据;选「添加列」会生成新列保留原数据,按需选择。
在转换输入框中粘贴以下GREL表达式:
var usStates = ["Alabama", "Alaska", "Arizona", "Arkansas", "California", "Colorado", "Connecticut", "Delaware", "Florida", "Georgia", "Hawaii", "Idaho", "Illinois", "Indiana", "Iowa", "Kansas", "Kentucky", "Louisiana", "Maine", "Maryland", "Massachusetts", "Michigan", "Minnesota", "Mississippi", "Missouri", "Montana", "Nebraska", "Nevada", "New Hampshire", "New Jersey", "New Mexico", "New York", "North Carolina", "North Dakota", "Ohio", "Oklahoma", "Oregon", "Pennsylvania", "Rhode Island", "South Carolina", "South Dakota", "Tennessee", "Texas", "Utah", "Vermont", "Virginia", "Washington", "West Virginia", "Wisconsin", "Wyoming"]; value in usStates ? "United States" : value
代码说明
- 第一行定义了包含所有美国州全名的数组
usStates,如果你的数据里有州缩写(比如"CA"),直接把缩写添加到数组里即可,例:["Alabama", "AL", "Alaska", "AK", ...]。 - 第二行使用GREL的三元运算符逻辑:判断当前单元格值(
value)是否在usStates数组中,若是则返回"United States",否则保留原单元格值。
注意事项
- 确保数组中的州名拼写、大小写、空格和数据中的完全匹配,否则无法触发替换。
- 可以先通过「文本筛选」查看
Country列中的州名情况,确认所有需要替换的州都已加入数组。
内容的提问来源于stack exchange,提问作者gggjackie
相关产品推荐
相关产品推荐

