如何使用级别值在 dask 数据框中进行索引?
How to use level-values for indexing in a dask dataframe?
通过对数据集初始值的过滤步骤,我得到了一个更大数据集的索引子集,形式为
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()
通过对数据集初始值的过滤步骤,我得到了一个更大数据集的索引子集,形式为
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()