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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用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创建文件列表,然后使用pandas for循环,我没有这个问题。可能是这样做的全局方式是解释每个文件的标题,而dask不是在我的输入数据集中混合列的情况下?

非常感谢你提前!

蒂姆

答案

谢谢您的帮助。

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

以上是关于使用Dask加载多个CSV文件时混合列的主要内容,如果未能解决你的问题,请参考以下文章

对单个列执行操作时,dask 是不是会加载所有列?

使用 dask.dataframe 从 CSV 文件中按分区读取尾部

Dask连接的简单方法(水平,轴= 1,列)

如何使用 dask/fastparquet 从多个目录中读取多个 parquet 文件(具有相同架构)

Parquet 文件上 groupby 的最佳实践

ML.NET Cookbook:如何从CSV加载包含多个列的数据?