如何仅删除DataFrame中TITLE列出现次数超过2次的重复行
实现思路
先统计每个TITLE的出现次数,分两种情况处理:
- 出现次数≤2的
TITLE:所有行全部保留 - 出现次数>2的
TITLE:仅保留不重复的行,删除重复项
完整代码
import pandas as pd # 读取csv文件(你的原有读取逻辑不变) # df = pd.read_csv("你的文件路径.csv") # 1. 新增辅助列统计每个TITLE的出现次数 df['title_cnt'] = df.groupby('TITLE')['TITLE'].transform('count') # 2. 分情况处理后合并结果 res = pd.concat([ # 出现次数≤2的部分原封不动保留 df[df['title_cnt'] <= 2], # 出现次数>2的部分去重,默认按全列匹配去重,若只需按TITLE去重可加参数 subset='TITLE' df[df['title_cnt'] > 2].drop_duplicates() # 3. 删除辅助列,按原索引排序保证顺序和原始数据一致 ]).drop(columns='title_cnt').sort_index() # 验证输出 print(res)
示例验证
用你提供的测试数据运行上述代码,输出结果和你预期完全一致:
TITLE DESCRIPTION 0 android android@email.com 1 python python@email.com 2 android android@outlook.com 4 Php php@email.com
该逻辑处理50MB大小的CSV文件性能无压力,不需要额外优化。
内容的提问来源于stack exchange,提问作者Sainita
相关产品推荐
相关产品推荐

