Pandas如何仅删除Format列值不同的重复Title对应行
解决方案
核心思路
- 按
Title字段分组,校验每个分组内的Format是否全部一致 - 仅保留校验通过的Title对应的所有行,直接剔除存在不同Format的整个Title分组
- 从过滤后的DataFrame中直接统计
Title唯一值数量即可
代码实现
首先构造示例数据验证效果:
import pandas as pd # 构造示例DataFrame df = pd.DataFrame({ 'Title': ['T1', 'T1', 'T2', 'T3', 'T4', 'T4', 'T4'], 'Format': ['F1', 'F1', 'F2', 'F1', 'F3', 'F1', 'F2'], 'Publisher': ['P1', 'P2', 'P1', 'P3', 'P2', 'P3', 'P3'], 'Year': [2010, 2014, 2012, 2016, 2009, 2010, 2011] })
核心处理逻辑:
# 过滤保留同一个Title下所有Format完全相同的所有行 filtered_df = df.groupby('Title').filter(lambda x: x['Format'].nunique() == 1) # 统计Title唯一值数量,直接得到结果3 title_unique_count = filtered_df['Title'].nunique()
结果验证
运行后filtered_df和你给出的期望输出完全一致,title_unique_count直接返回统计值3,两个结果都可以直接用于后续分析。
内容的提问来源于stack exchange,提问作者Auream
相关产品推荐
相关产品推荐

