我正在使用多个列对数据框进行分组(例如,列A,B - > my_df.groupby(['A','B'])
),是否有更好的(更少的代码行,更快)查找每个子组中有多少行的方法总共有多少个小组?目前我正在使用:
def get_grp_size(grp):
grp['size'] = len(grp)
return grp
my_df = my_df.groupby(['A','B']).apply(get_grp_size)
my_df[['A','B','size']].drop_duplicates().size
答案 0 :(得分:1)
my_df.groupby(['A', 'B']).count()
len(my_df.groupby(['A', 'B']).groups)
添加可以使用transform的计数的列:
df["size"] = df.groupby(['A', 'B']).transform(len)