Pandas:返回每个组中最常见值的出现次数(可能不需要使用apply函数)

3

假设输入数据集:

test1 = [[0,7,50], [0,3,51], [0,3,45], [1,5,50],[1,0,50],[2,6,50]]
df_test = pd.DataFrame(test1, columns=['A','B','C'])

对应于:

    A   B   C
0   0   7   50
1   0   3   51
2   0   3   45
3   1   5   50
4   1   0   50
5   2   6   50

我想获得按'A'分组的数据集,以及每个组中'B'最常见的值和该值的出现次数:

A   most_freq freq
0   3          2
1   5          1
2   6          1

我可以使用以下方法获取前两列:

grouped = df_test.groupby("A")
out_df = pd.DataFrame(index=grouped.groups.keys())
out_df['most_freq'] = df_test.groupby('A')['B'].apply(lambda x: x.value_counts().idxmax())

但是我在最后一列遇到了问题。 另外:有没有更快的方法,不需要使用“apply”?这种解决方案在处理更大的输入时不具有可扩展性(我也尝试过dask)。

非常感谢!

1个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,