gpt4 book ai didi

在 Dask 中排序

转载 作者:行者123 更新时间:2023-12-03 09:28:51 24 4
gpt4 key购买 nike

我想找到 的替代品pandas.dataframe.sort_value 功能在 dask。
我来了 set_index ,但它会按单列排序。

如何对 Dask 数据框的多列进行排序?

最佳答案

到目前为止,Dask 似乎不支持按多列排序。但是,创建一个连接已排序列的值的新列可能是一种可用的解决方法。

d['new_column'] = d.apply(lambda r: str([r.col1,r.col2]), axis=1)
d = d.set_index('new_column')
d = d.map_partitions(lambda x: x.sort_index())

编辑:
如果您想按两个字符串排序,则上述方法有效。我建议创建整数(或字节)列,然后使用 struct.pack创建一个新的复合字节列。例如,如果 col1_dt是日期时间和 col2是一个整数:
import struct

# create a timedelta with seconds resolution.
# i know this is the resolution is correct
d['col1_int'] = ((d['col1_dt'] -
d['col1_dt'].min())/np.timedelta64(1,'s')
).astype(int)

d['new_column'] = d.apply(lambda r: struct.pack("ll",r.col1_int,r.col2))
d = d.set_index('new_column')
d = d.map_partitions(lambda x: x.sort_index())

关于在 Dask 中排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50809462/

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