熊猫分组的最小和最大聚合非常慢

时间:2019-10-21 20:19:30

标签: python pandas

我有带有日期时间索引和形状的数据框:

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()的计时可以改善吗?

1 个答案:

答案 0 :(得分:0)

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