使用Dask加载多个CSV文件时,列混合



我试图用dask导入一堆csv文件,但我的列似乎混在一起了。

import pandas as pd
import dask.dataframe as dd
import numpy as np
names = ['date', 'country', 'A', 'B']
dtypes = {'booking_date': object, 'booking_country': object, 
'A': object, 'B': np.float32}
dask_df = dd.read_csv("folder/file_*.csv", dtype=dtypes, 
header=None, names=names, skiprows=1)

数据帧具有以下形状:

date country    A         B
0  2019-07-24     ALB  XX  0.041786
1  2019-07-24     AND  XX  0.022168
2  2019-07-24     ARE  YY  0.177757
3  2019-07-24     ARM  YY  0.024475
4  2019-07-24     AUT  ZZ  0.287205

当我想继续使用它时,对于某些列,A列和B列似乎是混合的。有人知道为什么会发生这种事吗?我该如何避免?

如果我使用glob.glob创建一个文件列表,然后用panda循环它,我就没有这个问题了。可能是glob的方法是解释每个文件的头,而dask则不是,以防在我的输入数据集中混合了列?

提前非常感谢!

Tim

感谢您的帮助。

显然,我的一些文件的列顺序错误,dask无法处理。https://github.com/d6t/d6tstack/blob/master/examples-dask.ipynb会解决这个问题,但我还没有时间测试它。

最新更新