Pandas:如何为DataFrame内的重复行新增出现次数统计列
Pandas重复行计数实现方案
需求说明
通过duplicated()方法筛选得到仅包含重复行的DataFrame后,需要在该DataFrame右侧新增计数列,统计每一行在重复行DataFrame中的总出现次数。此前尝试对所有列执行groupby操作,写法类似df.groupby([*all columns*]).count(),未达到预期效果。
原始DataFrame样式如下:
可选实现方案
- 方案1:通过value_counts统计后合并关联
newdf = healthdf[healthdf.duplicated(keep = False)].copy() df_count = newdf.value_counts(dropna = False).reset_index(name='count') df_out = newdf.merge(df_count, how='left') df_out.drop_duplicates(keep = "first").sort_values("count", ascending = False)
- 方案2:通过全列groupby直接统计
col = newdf.columns.to_list() newdf.groupby(col,dropna=False).size().sort_values(ascending = False)
最终输出效果

内容的提问来源于stack exchange,提问作者Ori Hait
相关产品推荐
相关产品推荐

