You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pandas数据框中从地址列提取州名生成新列?

Pandas提取地址中的州名并生成新列

首先注意你的州列表代码存在错误,List = [Imo, Lagos, Abia, Ebonyi, Rivers]里的州名是未定义变量,需要改成字符串列表:

states = ['Imo', 'Lagos', 'Abia', 'Ebonyi', 'Rivers']

不推荐使用iterrows(),它逐行遍历的效率极低,尤其在数据量大时。推荐以下两种更高效简洁的方法:

方法一:使用apply函数

定义提取州名的函数,通过apply批量处理每一行地址:

def get_state(address):
    for state in states:
        if state in address:
            return state
    return None  # 无匹配州名时返回空值

df['state'] = df['Address'].apply(get_state)

方法二:使用正则表达式(更高效)

利用Pandas的字符串矢量化操作,通过正则匹配直接提取州名,速度远快于逐行遍历:

# 生成正则匹配模式,用|分隔所有州名
state_regex = '|'.join(states)
# 提取第一个匹配到的州名
df['state'] = df['Address'].str.extract(f'({state_regex})', expand=False)

执行后你的数据框会新增state列,对应每行地址中的州名。

内容的提问来源于stack exchange,提问作者Engr. Chinwe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 18:05:18