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

如何提取Pandas DataFrame某列前两个分隔元素生成新列?

解决方法

你的需求是提取每行ID列中逗号分隔的前两个元素,去除空格后用下划线连接生成新列New_id,以下是可行的代码方案:

方案一:链式字符串操作

import pandas as pd

df1 = pd.DataFrame({'ID': ['T1002, T5006, T5007, Stay home', 'Go for walk, T5007, T5007, Stay home']})

# 分割字符串取前两个元素,去除空格后用下划线连接
df1['New_id'] = df1['ID'].str.split(',').str[:2].apply(lambda x: '_'.join([s.strip() for s in x]))

方案二:展开分割结果后处理(更直观)

# 将ID列按逗号分割成多列,取前两列,去除空格后横向拼接
split_df = df1['ID'].str.split(',', expand=True)
df1['New_id'] = split_df[0].str.strip() + '_' + split_df[1].str.strip()

结果验证

执行后得到的DataFrame如下:

New_id                                   ID
0        T1002_T5006  T1002, T5006, T5007, Stay home
1  Go for walk_T5007  Go for walk, T5007, T5007, Stay home

原代码问题说明

你之前的代码df1["ID"].str.split(',').str.join(sep=" ")只是把逗号分隔的内容换成空格连接,完全没有提取前两个元素和用下划线拼接的逻辑,所以无法得到预期结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 18:01:17