Python pandas处理单元格逗号分隔列表仅保留重复值报错如何解决
问题解决:pandas DataFrame单元格内逗号分隔值保留重复元素
错误原因
- 语法错误:原有代码索引段
df['A']df['A'].duplicated()]缺少左方括号,存在语法问题无法正常解析 - 逻辑错误:
duplicated()方法是判断A列不同行之间的重复关系,和需求要求的「单个单元格内部的元素重复判断」完全不符 - 赋值错误:在
iterrows循环中直接对整列A赋值,返回结果长度和原DataFrame行数不匹配,因此抛出ValueError
正确实现代码
import pandas as pd from collections import Counter # 源数据 df = pd.DataFrame( data={'A': ['aaa, aaa, aaa', 'aaa, aaa, bbb', 'bbb, aaa, aaa', 'aaa, bbb, ccc'],'B': [ '1', '1', '1', '1']}) # 定义单元格处理函数:仅保留单元格内重复出现的元素 def keep_cell_duplicates(s): # 按分隔符拆分元素 elem_list = s.split(', ') # 统计元素出现频次 count = Counter(elem_list) # 筛选出现次数≥2的元素,拼接为字符串(无符合条件元素则返回空字符串) return ','.join([k for k, v in count.items() if v >= 2]) # 对A列逐单元格应用处理规则 df['A'] = df['A'].apply(keep_cell_duplicates)
输出结果
运行后得到的df和你期望的df_2完全一致:
| A | B |
|---|---|
| aaa | 1 |
| aaa | 1 |
| aaa | 1 |
| 1 |
内容的提问来源于stack exchange,提问作者imnotarobotre
相关产品推荐
相关产品推荐

