如何提取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
相关产品推荐
相关产品推荐

