2

我正在使用多列(例如,列 A, B -> my_df.groupby(['A','B']))对 DataFrame 进行分组,是否有更好的(代码行更少,更快)方法来查找每个子组中有多少行以及总共有多少子组?目前我正在使用:

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
4

1 回答 1

1
my_df.groupby(['A', 'B']).count()
len(my_df.groupby(['A', 'B']).groups)

要添加带有计数的列,您可以使用transform

df["size"] = df.groupby(['A', 'B']).transform(len)
于 2013-10-25T03:50:13.380 回答