假设我有以下 Dataframe :
| 密码|价格|
| --------------|--------------|
| AA1|10个|
| AA1|二十|
| BB2|三十|
我想对它执行以下操作:
df.groupby("code").aggregate({
"price": "sum"
})
我试过使用Pandas 2.0中引入的新的pyarrow dtypes,我创建了3个副本,并为每个副本测量了上述操作的执行时间(平均5次执行)。
| 代码列dtype|价格列dtype|执行时间|
| --------------|--------------|--------------|
| 对象|浮动64|2.94秒|
| 字符串[pyarrow]|双[皮雅罗]|49.5秒|
| 字符串[pyarrow]|浮动64|1.11秒|
谁能解释一下为什么在一个具有double pyarrow dtype的列上应用一个聚合函数与标准的numpy float 64 dtype相比如此之慢?
1条答案
按热度按时间2guxujil1#
https://github.com/pandas-dev/pandas/issues/52070
看起来arrow的groupby还没有实现--所以很可能在内部发生了arrow -〉numpy,导致性能下降。