Dask - 非常大的 csv 数据集,第一列成为索引,列名获得偏移量

问题描述

我正在尝试使用一组数百万行的 csv.gz 文件创建一个数据框。当使用较小版本的文件时,大约 3000 行,创建的数据框很好,输出显示如下:

   My1stColName   My2ndColName   My3rdColName
0  Datain1stCol   Datain2ndCol   Datain3rdCol
1  Datain1stCol   Datain2ndCol   Datain3rdCol
2  Datain1stCol   Datain2ndCol   Datain3rdCol
...
[3527 rows x 16 columns]

但是,当尝试仅导入一个包含 1.9m 行的大型数据集时,我丢失了索引列并且数据框返回(作为示例):

               My1stColName   My2ndColName   My3rdColName
Datain1stCol   Datain2ndCol   Datain3rdCol
Datain1stCol   Datain2ndCol   Datain3rdCol
Datain1stCol   Datain2ndCol   Datain3rdCol
...
[1940065 rows x 16 columns]

碰巧“Datain1stCol”是一个不会改变的静态值,但偏斜会抛弃其他一切。

我正在做以下事情:

df = dd.read_csv(filename,blocksize=None,names=['Datain1stCol','Datain2ndCol','Datain3rdCol','Datain4thCol','Datain5thCol','Datain6thCol','Datain7thCol','Datain8thCol','Datain9thCol','Datain10thCol','Datain11thCol','Datain12thCol','Datain13thCol','Datain14thCol',"Datain15thCol",'Datain16thCol'],dtype={'Datain1stCol':str,'Datain2ndCol':str,'Datain3rdCol':str,'Datain4thCol':float,'Datain5thCol':str,'Datain6thCol':str,'Datain7thCol':str,'Datain8thCol':str,'Datain9thCol':str,'Datain10thCol':float,'Datain11thCol':str,'Datain12thCol':float,'Datain13thCol':str,'Datain14thCol':str,"Datain15thCol":str,'Datain16thCol':str}
        )

当我尝试在读取时不命名列时,我得到了索引:

   Datain1stCol   Datain2ndCol   Datain3rdCol 
0  Datain1stCol   Datain2ndCol   Datain3rdCol
1  Datain1stCol   Datain2ndCol   Datain3rdCol
2  Datain1stCol   Datain2ndCol   Datain3rdCol
...
[1940065 rows x 16 columns]

我想保持 ColumnNames 不变。

出于本次测试的目的,我只引入了具有 190 万行的单个文件,但最终版本将引入大量这些数百万行的文件。我正在遍历文件列表并附加到另一个框架以将数据放入其自己的 npartition.... 最终结果我希望尽可能高效。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)