首页 > 解决方案 > Python Pandas 中的引擎 read_csv

问题描述

在 python 中 pandas 方法的文档中,pd.read_csv()在描述“sep”参数时,提到了 C 引擎和 Python 引擎等引擎。

文档链接为: https ://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html

这些引擎是什么?每个引擎的作用是什么?有什么类比可以帮助更好地理解这些引擎吗?

标签: pythonpython-3.xpandascsvdataframe

解决方案


文档说明了“c”(默认)和“python”引擎之间的pd.read_csv具体区别。名称表示编写解析器的语言。具体来说,文档指出:

pandas 尽可能使用 C 解析器(指定为engine='c'),但如果指定了 C 不支持的选项,则可能会回退到 Python。

以下是您应该注意的主要区别(从 v0.23.4 开始):

  • 'c' 更快,而 'python' 目前功能更完整。
  • 'python' 支持skipfooter,而 'c' 不支持。
  • 'python' 支持sep除单个字符(inc regex)以外的灵活方式,而 'c' 不支持。
  • 'python' 支持sep=Nonewithdelim_whitespace=False,这意味着它可以自动检测分隔符,而 'c' 不支持。
  • 'c' 支持float_precision,而 'python' 不支持(或没有必要)。

版本说明:

  • dtype'python' v0.20.0+ 支持。
  • delim_whitespace'python' v0.18.1+ 支持。

请注意,随着功能的开发,上述内容可能会发生变化。如果您在更高版本中看到意外行为,您应该检查IO 工具(文本、CSV、HDF5,...) 。


推荐阅读