如何在DataFrame中生成唯一行的频率统计表
处理重复行并添加计数列的方法
解决这个需求用Pandas有两种简洁的实现方式:
方法一:使用groupby + size
先按from和to列分组,统计每组的行数,再将分组索引转为普通列并命名计数列为weight:
import pandas as pd # 构造示例DataFrame data = { 'from': [6140690, 6140430, 6141450, 6141450, 6140430, 6140430], 'to': [6141500, 6140428, 6140428, 6140428, 6141450, 6141450] } df = pd.DataFrame(data) # 生成带weight列的去重DataFrame df_weighted = df.groupby(['from', 'to']).size().reset_index(name='weight') print(df_weighted)
方法二:使用value_counts(更简洁)
value_counts会直接统计所有列组合的重复次数,再将结果转为标准DataFrame格式:
df_weighted = df.value_counts().reset_index(name='weight') print(df_weighted)
两种方法都会输出你期望的结果:
from to weight 0 6140430 6140428 1 1 6140430 6141450 2 2 6140690 6141500 1 3 6141450 6140428 2
内容的提问来源于stack exchange,提问作者ltong
相关产品推荐
相关产品推荐

