如何在Pandas中为重复行添加计数,替代仅删除重复行
为重复行添加重复计数的解决方案
你现在的代码只能删除重复行,要实现保留唯一行并添加重复计数,可以用以下两种方式修改:
方法一:分组统计后合并
import pandas as pd data = [ ['A','B','C'], ['A','B','C'], ['A','D','C'], ['A','D','C'] ] df = pd.DataFrame(data,columns=['x1','x2','x3']) print(df) # 按所有列分组,统计每组的行数(重复次数) count_df = df.groupby(['x1','x2','x3']).size().reset_index(name='count') # 保留原数据中首次出现的行,再合并计数信息 df1 = df.drop_duplicates(keep='first').merge(count_df, on=['x1','x2','x3']) print(df1)
方法二:用transform直接添加计数列
import pandas as pd data = [ ['A','B','C'], ['A','B','C'], ['A','D','C'], ['A','D','C'] ] df = pd.DataFrame(data,columns=['x1','x2','x3']) print(df) # 给每一行添加对应组的重复次数 df['count'] = df.groupby(['x1','x2','x3'])['x1'].transform('size') # 只保留每组首次出现的行 df1 = df.drop_duplicates(keep='first') print(df1)
输出结果
原数据输出:
x1 x2 x3 0 A B C 1 A B C 2 A D C 3 A D C
处理后的输出:
x1 x2 x3 count 0 A B C 2 2 A D C 2
内容的提问来源于stack exchange,提问作者lucky1928
相关产品推荐
相关产品推荐

