如何使用Python pandas彻底删除DataFrame行内全部重复字符串
解决思路与实现代码
核心逻辑是逐行拆分字符串后统计元素出现频次,仅保留出现次数为1的元素再拼接。
- 按逗号拆分每行
text_column的字符串,过滤拆分产生的空值 - 用
Counter统计当前行每个元素的出现次数 - 筛选出出现次数等于1的元素,拼接为最终结果字符串
具体实现代码如下:
from collections import Counter def process_row(s): # 拆分字符串并过滤空元素 elem_list = [item for item in s.split(',') if item] # 统计元素频次 elem_count = Counter(elem_list) # 保留仅出现1次的元素并拼接 return ','.join([item for item in elem_list if elem_count[item] == 1]) df['result'] = df['text_column'].apply(process_row)
执行后得到的result列完全符合你给出的预期输出。之前使用set的方法仅能实现去重保留单个实例,无法满足「重复值全量删除」的需求,本质是因为没有先统计元素的出现频次做过滤。
内容的提问来源于stack exchange,提问作者code_learner
相关产品推荐
相关产品推荐

