Python 聚合最小值和最大值的分组速度非常慢

Python 聚合最小值和最大值的分组速度非常慢,python,pandas,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

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

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()的计时是否可以改进?

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

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

只要使用drop\u duplicate或duplicate,数据是否包含文本/字符串
mean,sum
会忽略它们,但min,max不会。我想groupby不会忽略sum的字符串:
pd.DataFrame([[A',B']*2]*10)。groupby(0)。sum()
哦,你明白了!其中一列是字符串,当我删除它时,min和max变快了!谢谢:)@ALollz说得好。虽然字符串总和在某种程度上比
int
/
float
总和更快,所以可能不算:-)。可以,只要使用drop\u duplicate或duplicate,您的数据是否包含文本/字符串
mean,sum
会忽略它们,但min,max不会。我想groupby不会忽略sum的字符串:
pd.DataFrame([[A',B']*2]*10)。groupby(0)。sum()
哦,你明白了!其中一列是字符串,当我删除它时,min和max变快了!谢谢:)@ALollz说得好。虽然字符串和在某种程度上比
int
/
float
sum快,所以这可能不算:-)。