当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python dask.dataframe.read_fwf用法及代码示例


用法:

dask.dataframe.read_fwf(urlpath, blocksize='default', lineterminator=None, compression='infer', sample=256000, sample_rows=10, enforce=False, assume_missing=False, storage_options=None, include_path_column=False, **kwargs)

将fixed-width 文件读入 Dask.DataFrame

这通过以下方式并行化 pandas.read_fwf() 函数:

  • 它支持使用 globstrings 一次加载多个文件:

    >>> df = dd.read_fwf('myfiles.*.csv')
  • 在某些情况下,它可以分解大文件:

    >>> df = dd.read_fwf('largefile.csv', blocksize=25e6)  # 25MB chunks
  • 它可以通过提供 URL 从外部资源(例如 S3、HDFS)读取 CSV 文件:

    >>> df = dd.read_fwf('s3://bucket/myfiles.*.csv')  
    >>> df = dd.read_fwf('hdfs:///myfiles.*.csv')  
    >>> df = dd.read_fwf('hdfs://namenode.example.com/myfiles.*.csv')

在内部 dd.read_fwf 使用 pandas.read_fwf() 并支持许多具有相同性能保证的相同关键字参数。有关可用关键字参数的更多信息,请参阅pandas.read_fwf() 的文档字符串。

参数

urlpath字符串或列表

绝对或相对文件路径。使用 s3:// 之类的协议作为前缀,以从替代文件系统中读取。要从多个文件中读取,您可以传递一个 globstring 或路径列表,但需要注意的是它们都必须具有相同的协议。

blocksizestr,int 或 None,可选

分割较大文件的字节数。默认值是根据可用物理内存和内核数计算的,最大为 64MB。可以是 64000000 之类的数字或 "64MB" 之类的字符串。如果 None ,则每个文件使用一个块。

sample整数,可选

确定 dtypes 时使用的字节数

assume_missing布尔型,可选

如果为 True,则假定 dtype 中未指定的所有整数列都包含缺失值,并转换为浮点数。默认为假。

storage_options字典,可选

对特定存储连接有意义的额外选项,例如主机、端口、用户名、密码等

include_path_columnbool 或 str,可选

是否包含每个特定文件的路径。如果为 True,则会将一个新列添加到名为 path 的 DataFrame 中。如果是 str,则设置新的列名。默认为假。

**kwargs

额外的关键字参数转发到 pandas.read_fwf()

注意

Dask 数据帧尝试通过从文件开头(或者如果是 glob,则从第一个文件)读取样本来推断每列的 dtype。通常这工作正常,但如果 dtype 稍后在文件(或其他文件)中不同,这可能会导致问题。例如,如果样本中的所有行都有整数 dtype,但后来有 NaN ,那么这将在计算时出错。要解决此问题,您有几个选择:

  • 使用 dtype 关键字为有问题的列提供明确的 dtypes。这是推荐的解决方案。
  • 使用 assume_missing 关键字假设所有推断为整数的列都包含缺失值,并将它们转换为浮点数。
  • 使用sample 关键字增加样本的大小。

还应注意,如果fixed-width 文件包含包含行终止符的带引号的字符串,则此函数可能会失败。要解决此问题,您可以指定blocksize=None 不将文件拆分为多个分区,但会降低并行度。

相关用法


注:本文由纯净天空筛选整理自dask.org大神的英文原创作品 dask.dataframe.read_fwf。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。