使用Python dask读取CSV时,我可以设置索引列吗?

时间:2017-09-12 10:53:26

标签: python csv dataframe dask

使用Python Pandas读取CSV时,可以指定索引列。在读取文件时是否可以使用Python Dask,而不是之后设置索引?

例如,使用pandas:

df = pandas.read_csv(filename, index_col=0)

理想情况下,使用dask可能是:

df = dask.dataframe.read_csv(filename, index_col=0)

我试过了

df = dask.dataframe.read_csv(filename).set_index(?)

但索引列没有名称(这似乎很慢)。

2 个答案:

答案 0 :(得分:3)

不,这些必须是两种不同的方法。如果你试试这个,那么Dask会告诉你一个很好的错误信息。

In [1]: import dask.dataframe as dd
In [2]: df = dd.read_csv('*.csv', index='my-index')
ValueError: Keyword 'index' not supported dd.read_csv(...).set_index('my-index') instead

但这不会比以其他方式做得更慢或更快。

答案 1 :(得分:1)

我知道我来晚了,但这是google上的第一个结果,因此应该得到回答。

如果您使用以下方式编写数据框:

# index = True is default
my_pandas_df.to_csv('path')

#so this is same
my_pandas_df.to_csv('path', index=True)

并使用Dask导入:

import dask.dataframe as dd
my_dask_df = dd.read_csv('path').set_index('Unnamed: 0')

它将使用列0作为您的索引(由于pandas.DataFrame.to_csv()而未命名)。

如何解决:

my_dask_df = dd.read_csv('path')
my_dask_df.columns

返回

Index(['Unnamed: 0', 'col 0', 'col 1',
       ...
       'col n'],
      dtype='object', length=...)