我的数据集如下所示:
id count
A. 2
A. 10
B. 3
B. 13
B. 11
C. 2
C. 3
我需要为每个id聚合“count”值的总和和平均值。使用Pandas,我正在做这样的事情:
stats = df.groupby('id').agg({'agg': ['sum', 'mean']})
我尝试使用numpy阵列对此进行优化:
counts = df['count'].values
ids = df['id'].values
all_ids = df['id'].unique()
stats = [(i, np.mean(df[ids==i]), np.sum(df[ids==i])) for i in all_ids]
然而,这最终要比相应的实现花费更多的时间。有没有办法加快速度(可能使用一些numpy功能?)
1条答案
按热度按时间nfeuvbwi1#
仅当您的 Dataframe 按
id
:我想你可以用
np.view
分类,但我不知道如何使用它。演出
对于1000000个值和1000个不同的组