目前df。dask中的sort_values只接受按1列排序。
我有一个大文件,它的结构是
输入数据
我不知道如何先按整数列排序,然后按日期排序,如
- 2000-01-01;43000
- 2000-01-02;43000
- 2000-01-01;25000
- 2000-01-02;25000
我认为创建一个组合列并对其排序将是最好的选择。问题是,我不知道如何创建一个列来完成这一点。也许有另一种方法可以做到这一点,而无需在Dask中创建组合列…
谢谢!
假设d['col1']
为datetime
型,d['col2']
为int
型:
import struct
import numpy as np
# create a timedelta with days resolution as int
d['col1_int'] = ((d['col1_dt'] -
d['col1_dt'].min())/np.timedelta64(1,'D')
).astype(int)
d['sort_col'] = d.apply(lambda r: struct.pack("ll",r.col1_int,r.col2))
d = d.set_index('sort_col')
d = d.map_partitions(lambda x: x.sort_index())
根据这个答案重做