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

如何将DataFrame的Address列拆分至对应多级地址列?

解决方案

用Python的pandas库可以轻松实现这个地址拆分需求,具体代码和步骤如下:

1. 初始化数据

先构建你给出的示例DataFrame:

import pandas as pd

df = pd.DataFrame({
    'Address': [
        'USA, Utah, Richfield, building 315E',
        'Russia,  Moscow oblast, Moscow, Arbat District, New street, building 78'
    ]
})

2. 拆分地址到目标列

通过字符串拆分、补全列数、映射字段名三步完成:

# 拆分地址,自动处理逗号后的空格,展开为多列
split_cols = df['Address'].str.split(',\s*', expand=True)

# 补全为6列,缺失的位置填充NA
split_cols = split_cols.reindex(columns=range(6), fill_value='NA')

# 重命名为目标列名
split_cols.columns = ['Country', 'Region/Sate', 'City', 'District', 'Street', 'Building']

# 合并到原DataFrame并删除原Address列(也可以直接使用split_cols作为结果)
final_df = pd.concat([df, split_cols], axis=1).drop('Address', axis=1)

3. 最终结果

运行代码后,final_df的输出完全符合你的要求:

CountryRegion/SateCityDistrictStreetBuilding
USAUtahRichfieldNANAbuilding 315E
RussiaMoscow oblastMoscowArbat DistrictNew streetbuilding 78

细节说明

  • ,\s*作为分隔符:匹配逗号加上任意数量的空格,确保拆分后的字段不会带前导空格。
  • reindex补全列:因为不同地址的字段数量不一致,用这个方法统一为6列,缺失的位置自动填充NA,保证和目标列一一对应。
  • 如果你的实际数据中Building的位置不固定,可以额外通过字符串匹配(比如str.contains('building'))来定位,但当前方案完全适配你提供的示例数据。

内容的提问来源于stack exchange,提问作者lzvtmtvv

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 23:48:39