如何在dask数据帧中使用级别值进行索引



从数据集初始值的过滤步骤中,我有一个形式的更大数据集的索引子集

indices = pandas_DataFrame_of_initial_values[my_subset].index.get_level_values(0)

这些指数的形式是

Int64Index([...], dtype='int64', name='id', length=N)

有了这个,我喜欢使用索引来减少使用Dask的大数据集,给定数据集为

from dask import dataframe as dd
ddf = dd.read_csv(path_to_data).set_index("id")

我试过

ddf.loc[indices]
# ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

ddf[ddf.index.isin(indices)]
# NotImplementedError: dask.array<isin, shape=(nan,), dtype=bool, chunksize=(nan,), chunktype=numpy.ndarray>

ddf[ddf.index.isin(indices.compute())]
# ValueError: Item wrong length 236644 instead of 0.

如何在较大的数据集上实际使用索引的子集?

我刚刚发现Int64index类型有一个to_list方法,使用该方法可以进行具有loc属性的选择:

ddf.loc[indices.to_list()].compute()

相关内容

  • 没有找到相关文章

最新更新