无法使用 dask 删除列或切片数据框?

Can't drop columns or slice dataframe using dask?

我正在尝试使用 dask 而不是 pandas,因为我有 2.6gb 的 csv 文件。 我加载它,我想删除一列。但似乎 drop 方法都没有 df.drop('column') 或切片 df[ : , :-1]

尚未实施。是这种情况还是我只是错过了什么?

我们在 this PR 中实现了 drop 方法。这从 dask 0.7.0 开始可用。

In [1]: import pandas as pd

In [2]: df = pd.DataFrame({'x': [1, 2, 3], 'y': [3, 2, 1]})

In [3]: import dask.dataframe as dd

In [4]: ddf = dd.from_pandas(df, npartitions=2)

In [5]: ddf.drop('y', axis=1).compute()
Out[5]: 
   x
0  1
1  2
2  3

以前也可以使用列名切片;当然,如果您有很多列,这可能会不那么吸引人。

In [6]: ddf[['x']].compute()
Out[6]: 
   x
0  1
1  2
2  3

这应该有效:

print(ddf.shape)
ddf = ddf.drop(columns, axis=1)
print(ddf.shape)