具有最大聚合性能的Pandas groupby函数速度较慢.分组性能改进



我有一个大约有16000行的数据帧,我对一列执行最大聚合,并将其按另一列分组。

df.groupby(['col1']).agg({'col2': 'max'}).reset_index()

它需要1.97秒。我想提高它的性能。请求您在使用numpy或矢量化的行中提出建议。

数据类型两列都是对象。

%%timeit
df.groupby(['col1']).agg({'col2': 'max'}).reset_index()
1.97 s ± 42 ms per loop (mean ± std. dev. of 7 runs, 1 loop each

我尝试了数据类型,并将col2的数据类型更改为integer,这大大减少了运行时间。

%%timeit
df['col2'] = df['col2'].astype(int)
df.groupby(['col1']).agg({'col2': 'max'}).reset_index()
6.58 ms ± 74.7 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)

整数的聚合将比字符串更快。

相关内容

  • 没有找到相关文章

最新更新