我试图用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会解决这个问题,但我还没有时间测试它。