python - 具有最大聚合性能的 Pandas groupby 函数很慢。groupby 性能提升
问题描述
我有一个大约有 16,000 行的数据框,我正在执行一列的最大聚合并将其按另一列分组。
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 的数据类型更改为整数,它显着减少了运行时间。
%%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)
整数的聚合将比字符串快。
推荐阅读
- android - Kotlin函数中参数的动态数量?
- r - scale_x_continuous 的中断似乎不起作用
- python - 仅当主机在 python 中可 ping 时才尝试将主机写入 csv
- python - 使用 matplotlib 在 Python 上的散点图上未正确显示 Y 轴标签
- angular - 在 ionic4 "BackgroundGeolocationConfig" 中删除 GPS 跟踪通知
- python - 循环遍历迭代并用模型中的预测值替换空值
- bash - bash中的字符串拆分分隔符返回两倍大小
- newrelic - New Relic Spring AOP 文档
- javascript - 我需要将一个函数设置为 html 元素的事件监听器
- c++ - QT ; 如何在运行时将资源路径存储到变量?