我试图用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创建文件列表,然后使用熊猫进行循环遍历,则不会出现此问题。难道这样做是为了解释每个文件的标头,而不是dask不能防止列混入我的输入数据集中?
非常感谢您!
蒂姆
答案 0 :(得分:0)
感谢您的帮助。
很显然,我的某些文件的列顺序错误,而dask无法处理。 https://github.com/d6t/d6tstack/blob/master/examples-dask.ipynb将解决此问题,但我还没有时间对其进行测试。