gpt4 book ai didi

dask - 如何让 Dask 知道索引已排序?

转载 作者:行者123 更新时间:2023-12-04 02:04:19 27 4
gpt4 key购买 nike

根据 this回答,如果 Dask 知道数据帧的索引已排序,则 Dask 数据帧可以执行智能索引。

如果索引已排序,我如何让 Dask 知道?

在我的具体情况下,我正在做这样的事情:

for source is sources:
# This df has a datetimeindex that I know to be sorted
pd = load_pandas_df_from_some_source(source)
dd = dask.dataframe.from_pandas(pd, chunksize=foo)
dd.to_hdf(some_unique_filename, '/data')

但是,当我这样做时,索引速度非常慢:

 dd = dask.dataframe.read_hdf(some_glob, '/data')
print(dd.loc['2001-1-1':'2001-1-2'])

我假设 Dask 不知道我的数据框已排序。我如何让它知道?

最佳答案

当你从HDF加载时,每个分区中索引的数据值不一定是已知的。这些用于构造用于加速查找的数据帧的 divisions 属性。

对于像您这样的数据集,您应该能够传递 sorted_index=True,并获得您想要的行为。

正如@kuanb 所建议的,您可能想尝试以 parquet 格式存储,这是专门为表格数据设计的。它是否提供更多性能将取决于您的数据的性质(hdf 主要是为数字数据编写的)和用例,ymmv;然而,Parquet 通常可以很好地保存每个分区中数据值的元数据统计信息。

关于dask - 如何让 Dask 知道索引已排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44724549/

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