python Pandas分组对于聚合最小值和最大值非常慢

dl5txlt9  于 2023-01-04  发布在  Python
关注(0)|答案(1)|浏览(171)

我有datetime索引和形状的 Dataframe :

df.shape
(311885, 38)

聚合函数.sum()、.mean()和.median()工作正常:

%%time
df.groupby(pd.Grouper(freq='D')).mean()
CPU times: user 77.6 ms, sys: 16 ms, total: 93.7 ms
Wall time: 92.7 ms

但是,.min()和.max()非常慢:

%%time
df.groupby(pd.Grouper(freq='D')).min()
CPU times: user 51.1 s, sys: 377 ms, total: 51.5 s
Wall time: 51.1 s

此外,尝试重新采样,结果同样不佳:

%%time
df.resample('D').min()
CPU times: user 52.2 s, sys: 478 ms, total: 52.7 s
Wall time: 52.2 s

已安装版本:

pd.__version__
'0.25.2'
print(sys.version)
3.6.8 (default, Jan 14 2019, 11:02:34) 
[GCC 8.0.1 20180414 (experimental) [trunk revision 259383]]

这是预期的行为吗?.min()和.max()的计时是否可以改进?

g52tjvyc

g52tjvyc1#

正如Quang Hoang在他们的评论中指出的,我有一个字符串列,它导致.min().max()很慢,没有它,一切都很快。

相关问题