Pandas多列字符串拼接去重时出现末尾多余斜杠如何解决
问题原因
你写的代码出现末尾多余斜杠的核心原因是:DataFrame里的空单元格对应的空值(NaN)/空字符串也会被pd.unique()纳入结果列表,拼接空值时会被识别为空串,最终导致末尾多出来斜杠。
修正代码
df["COMBINE"] = df.filter(regex='^Col', axis=1).apply( lambda x: '/'.join(pd.unique(x[x.notna() & (x != '')])), axis=1 )
改动说明
- 新增过滤逻辑
x[x.notna() & (x != '')]:先筛掉当前行里的NaN空值、空字符串,仅保留有实际内容的单元格值 - 对过滤后的值做去重、拼接操作,即可避免多余斜杠的出现
- 优化了原有冗余写法:
df[df.filter(regex='^Col',axis=1).columns]可以直接简化为df.filter(regex='^Col', axis=1),效果完全一致
如果你的空单元格统一为NaN格式,没有手动填充的空字符串,过滤逻辑可以简化为x[x.notna()]即可。
内容的提问来源于stack exchange,提问作者Peter Chen
相关产品推荐
相关产品推荐

