Python 具有无序索引的dask数据帧是否会导致静默错误?
围绕dask.DataFrame的方法似乎都确保索引列已排序。但是,通过使用_delayed中的Python 具有无序索引的dask数据帧是否会导致静默错误?,python,dask,Python,Dask,围绕dask.DataFrame的方法似乎都确保索引列已排序。但是,通过使用_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([pdf
,可以构造具有索引列的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是否经过测试可以很好地处理这样的数据帧
- 甚至可能是这样的数据帧上的计算会默默地给出错误的结果,例如,因为它们假定索引要排序,或者是在不完整的数据子集上执行的
- 或者更一般:如果索引列未排序,它是否只会降低按索引访问的速度,还是会破坏功能
许多dask.dataframe操作将拒绝在没有已知分区的数据帧上运行或使用较慢的算法运行。看
例如,df.loc
如果dask.dataframe知道索引已排序,并且知道每个分区的最小/最大值,则它的速度很快。但是,如果不知道此信息,则df.loc
必须彻底地查看所有分区
一般来说,dask.dataframe知道您提出的可能性,应该相应地采取行动。有些操作会比较慢。有些业务将拒绝运营