繁体   English   中英

将多个文件读入dask dataframe

[英]reading multiple files into dask dataframe

我想将多个 csv 文件读入一个单独的 dask dataframe。 由于某些原因,我的原始数据的某些部分丢失了(不知道为什么?)? 我想知道将它们全部读入dask的最佳方法是什么。 我使用了一个 for 循环,但不确定它是否正确。

 for file in os.listdir(dds_glob): if file.endswith('issued_processed.txt'): ddf = dd.read_fwf(os.path.join(dds_glob,file), colspecs=cols, header=None, dtype=object, names=names)

或者我应该使用这样的东西:

 dfs = delayed(pd.read_fwf)('/data/input/*issued_processed.txt', colspecs=cols, header=None, dtype=object, names=names) ddf = dd.from_delayed(dfs)

至少有两种方法:

  1. dask.dataframe提供文件列表,因此使用您的第一个片段看起来像:
file_list = [
    os.path.join(dds_glob,file)
    for file os.listdir(dds_glob) if file.endswith('issued_processed.txt')
]

# other options are skipped for convenience
ddf = dd.read_fwf(file_list)
  1. delayed对象构造 dataframe ,使用您的第二个片段看起来像:
# other options are skipped, but can be included after the `file`
dfs = [delayed(pd.read_fwf)(file) for file in file_list] 
ddf = dd.from_delayed(dfs)

第一种方法可以解决大约 82% 的用例,但对于其他情况,您可能需要尝试第二种方法或更复杂的方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM