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

如何在Pandas中提取单元格逗号后内容并转移至下一单元格

在Pandas中提取逗号分隔内容到相邻列的实现方法

需求场景

从指定列的单元格中提取逗号分隔的后半部分内容,赋值给右侧相邻列,同时保留原列内容不变。例如:

输入:city列值为Toronto,Canada,country列值为N/A
输出:country列值变为Canada,city列仍为Toronto,Canada

实现代码

1. 构造示例数据

import pandas as pd

# 创建示例DataFrame
data = {
    'city': ['Toronto,Canada', 'London,UK', 'Paris,France', 'Sydney'],
    'country': ['N/A', 'N/A', 'N/A', 'N/A']
}
df = pd.DataFrame(data)

2. 核心处理逻辑

推荐两种方法,根据实际场景选择:

方法一:快速拆分(适用于所有目标单元格都包含逗号的情况)

直接用str.split拆分后提取后半部分:

# 拆分city列,取逗号后的部分赋值给country列
df['country'] = df['city'].str.split(',', expand=True)[1]
方法二:兼容无逗号的情况(更鲁棒)

如果存在单元格没有逗号的情况,用apply结合条件判断避免报错,同时保留原列的N/A:

# 遍历每行,有逗号则提取后半部分(去除可能的空格),无则保留原country值
df['country'] = df.apply(
    lambda row: row['city'].split(',')[1].strip() if ',' in row['city'] else row['country'],
    axis=1
)

3. 处理结果

执行后df的内容:

city  country
0  Toronto,Canada  Canada
1      London,UK      UK
2    Paris,France   France
3           Sydney     N/A

关键说明

  • str.split(',', expand=True)会将拆分后的内容转为新的DataFrame,索引1对应逗号分隔的后半部分
  • 使用axis=1的apply可以逐行处理,适配复杂的条件判断
  • 原city列的内容全程保持不变,完全符合需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 19:35:20