如何在dask中使用``loc''进行数据框的列选择

时间:2018-08-26 00:08:16

标签: python pandas dataframe distributed dask

任何人都可以告诉我如何使用dask在数据框中选择带有“ loc”的一列?

作为一个旁注,当我使用dd.read_csv加载标题为“ None”的数据帧时,列名从零开始到131094。我将选择最后一个列名为131094的列,然后我得到了错误。

代码:

> import dask.dataframe as dd
> df = dd.read_csv('filename.csv', header=None)
> y = df.loc['131094']

错误:

文件“ /usr/local/dask-2018-08-22/lib/python2.7/site-packages/dask-0.5.0-py2.7.egg/dask/dataframe/core.py”,行180,位于_loc     “如果没有已知的划分,则无法在DataFrame上使用loc”) ValueError:如果没有已知的划分,则无法在DataFrame上使用loc

根据此准则http://dask.pydata.org/en/latest/dataframe-indexing.html#positional-indexing,我的代码应该可以正常工作,但不知道是什么原因引起的。

2 个答案:

答案 0 :(得分:0)

我在一个虚拟csv上尝试了此方法,并成功了。如果看不到文件给您带来的问题,我不能确定地帮助您。也就是说,您可能选择的是行而不是列。

相反,请尝试这个。

import dask.dataframe as dd
df = dd.read_csv('filename.csv', header=None)
y = df[df.columns[-1]]

答案 1 :(得分:0)

如果您有命名列,请使用:df.loc[:,'col_name'] 但是,如果您有一个位置列,例如在您的示例中需要最后一列,则使用@ user1717828的答案。