gpt4 book ai didi

python - 如何有效地在 dask 中使用 pandas.cut() (或等效的)?

转载 作者:太空狗 更新时间:2023-10-29 20:25:07 24 4
gpt4 key购买 nike

Dask 中是否有等同于 pandas.cut() 的函数?

我尝试在 Python 中对大型数据集进行分箱和分组。它是具有属性(positionX,positionY,能量,时间)的测量电子列表。我需要将它沿着 positionX、positionY 进行分组,并按能量类别进行装箱。

到目前为止,我可以用 pandas 做到这一点,但我想并行运行它。所以,我尝试使用 dask。

groupby 方法非常有效,但不幸的是,我在尝试bin 能量数据时遇到了困难。我找到了一个使用 pandas.cut() 的解决方案,但它需要在原始数据集上调用 compute()(将其本质上转换为非并行代码)。在 dask 中是否有等同于 pandas.cut() 的方法,或者是否有另一种(优雅的)方法来实现相同的功能?

import dask 
# create dask dataframe from the array
dd = dask.dataframe.from_array(mainArray, chunksize=100000, columns=('posX','posY', 'time', 'energy'))

# Set the bins to bin along energy
bins = range(0, 10000, 500)

# Create the cut in energy (using non-parallel pandas code...)
energyBinner=pandas.cut(dd['energy'],bins)

# Group the data according to posX, posY and energy
grouped = dd.compute().groupby([energyBinner, 'posX', 'posY'])

# Apply the count() method to the data:
numberOfEvents = grouped['time'].count()

非常感谢!

最佳答案

您应该能够执行 dd['energy'].map_partitions(pd.cut, bins)

关于python - 如何有效地在 dask 中使用 pandas.cut() (或等效的)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42442043/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com