如何快速提取pandas列字符串内的所有唯一值并拼接为单个字符串
解决方案
直接用pandas内置的矢量化方法即可实现,无需自己遍历列,也不需要额外安装第三方库,性能远高于Python层的循环实现。
核心实现代码
import pandas as pd import html # 处理逻辑 res = ','.join( DF['COLUMN'] # 可选步骤:转义HTML特殊字符,将`&`还原为`&` .apply(html.unescape) # 按逗号加任意数量空白字符拆分每个字符串为列表 .str.split(r',\s*', expand=False) # 将列表中的每个元素展开为单独的行 .explode() # 取所有唯一值 .unique() )
步骤说明
str.split(r',\s*'):适配原数据中逗号后多余的空格,自动分割每个字符串explode():pandas 0.25及以上版本支持的方法,将可迭代的列元素展开为多行,避免手动循环unique():直接获取所有唯一值,比手动去重效率更高
如果你使用的pandas版本低于0.25不支持
explode方法,可以将拆分+展开的步骤替换为:.str.split(r',\s*', expand=True).stack()最终效果完全一致。
运行上述代码后res就是你要的所有唯一值逗号分隔的字符串结果。
内容的提问来源于stack exchange,提问作者oli
相关产品推荐
相关产品推荐

