具有无序索引的 dask 数据帧会导致静默错误吗?

Can a dask dataframe with a unordered index cause silent errors?

dask.DataFrame 周围的方法似乎都可以确保索引列已排序。但是,通过使用 from_delayed,可以构造一个具有未排序的索引列的 dask 数据框:

pdf1 = delayed(pd.DataFrame(dict(A=[1,2,3], B = [1,1,1])).set_index('A'))
pdf2 = delayed(pd.DataFrame(dict(A=[1,2,3], B = [1,1,1])).set_index('A'))
ddf = dd.from_delayed([pdf1,pdf2]) #dask.DataFrame with unordered index

[索引已设置,索引未排序,分区未知]的组合是我在 dask 自己创建的数据框中从未见过的。所以我的问题是:

许多 dask.dataframe 操作将拒绝操作或将在没有已知划分的数据帧上使用较慢的算法进行操作。参见 http://dask.pydata.org/en/latest/dataframe-design.html#partitions

例如,如果 dask.dataframe 知道索引已排序并且知道每个分区的 min/max,则 df.loc 很快。但是,如果此信息未知,则 df.loc 必须详尽地查看所有分区。

一般来说,dask.dataframe 知道您提出的可能性,应该采取相应的行动。有些操作会比较慢。部分操作会拒绝操作