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

如何将pandas中每行存储列表的列转换为逗号分隔字符串

pandas技能列清洗实现方案

你可以根据需求选择以下两种实现方式,第二种结构化解析方案鲁棒性更强,更推荐使用。

方案1:符号替换快速实现

和你最初的思路一致,通过正则直接移除所有方括号、圆括号,空值转NaN即可,适合确认技能文本本身不包含括号的简单场景:

import pandas as pd
import numpy as np

df['Skills_clean'] = (
    df['Skills']
    .astype(str)
    .str.replace(r'[\[\]\(\)]', '', regex=True)
    .str.strip()
    .replace('', np.nan)
)
  • 注意:该方法属于暴力字符替换,如果技能文本本身包含括号(例如C(++)、.NET(Core)这类技能名),会出现内容误删的问题。

方案2:结构化提取(更优方案)

从数据结构来看,你的Skills列存储的是被圆括号包裹的技能实体组成的列表,直接提取所有圆括号内的纯文本再拼接,不会破坏技能本身的内容,适配性更强:

import re
import numpy as np

def parse_skills(cell_value):
    # 正则匹配所有圆括号内的文本内容
    skill_list = re.findall(r'\((.*?)\)', str(cell_value))
    # 空列表返回NaN,非空则用逗号拼接
    return np.nan if not skill_list else ', '.join(skill_list)

df['Skills_clean'] = df['Skills'].apply(parse_skills)

该方案的优势:

  • 不会误删技能文本内部自带的括号、特殊符号
  • 逻辑和NER输出的实体结构对齐,后续如果需要过滤重复实体、做实体类型筛选,只需要修改解析函数即可,扩展性更好
  • 执行后输出结果和你预期的Skills_clean格式完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 16:33:26