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

Pandas拆分Location列为城市与Governate列 缺失值填充Not specified

埃及地区Location字段拆分实现方案

原Location列的标准存储格式为「城市, 省/州, 国家」,以下代码可完全匹配你提出的拆分规则,将该列拆解为City(城市)和Governate(省/州)两个新列:

import pandas as pd

# 第一步:按逗号拆分Location列,去除每个字段的前后空格,补全为3列避免索引报错
split_loc = df['Location'].str.split(',', expand=True).apply(lambda col: col.str.strip())
split_loc = split_loc.reindex(columns=[0, 1, 2], fill_value='')

# 定义字段解析函数,完全匹配拆分规则
def parse_loc(row):
    # 统计非空字段数量
    valid_parts = sum(1 for val in row if val != '')
    # 规则2:仅1个字段的情况
    if valid_parts == 1:
        return ('对应Governate名称下未指定城市', 'Not specified')
    # 规则1:字段数少于3 或 首字段为Cairo的情况
    if valid_parts < 3 or row[0] == 'Cairo':
        return ('对应Governate名称下未指定城市', row[1])
    # 正常拆分场景
    return (row[0], row[1])

# 应用函数生成新列
df[['City', 'Governate']] = split_loc.apply(parse_loc, axis=1, result_type='expand')

规则匹配验证

  • 仅含国家的单段值(如Egypt):Governate自动设为Not specified,城市为未指定
  • 两段值(如Cairo, Egypt):触发规则1,城市设为未指定,Governate取第二段值
  • 三段但首字段为Cairo(如Cairo, Cairo, Egypt):触发规则1,城市设为未指定,Governate取第二段值
  • 正常三段值(如New Cairo, Cairo, Egypt):首字段为城市,第二段为Governate

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 05:24:03