Pandas阅读器的Pyarrow参数之间有什么区别?

uqjltbpv  于 2023-05-05  发布在  其他
关注(0)|答案(1)|浏览(158)

Pandas的文档解释了如何使用PyArrow作为IO方法的后端。然而,我无法从中理解这两种选择之间的区别:

df = pd.read_csv(data, engine="pyarrow")
# and
df_pyarrow = pd.read_csv(data, dtype_backend="pyarrow")

是什么东西?

ncgqoxb0

ncgqoxb01#

engine指定要使用的CSV * 解析器引擎 *。可用选项为cpythonpyarrow。其中dtype_backend参数是为了让pandas知道我们默认需要Arrow支持的类型(而不是numpy类型)。
我建议阅读这个excellent article from Marc(Pandas Core Developer),它详细介绍了pandas 2.0。
在pandas 2.0候选版本中,有一个dtype_backend选项,让pandas知道我们默认需要Arrow支持的类型。该选项令人困惑,因为并非所有操作都支持生成Arrow支持的数据,因此将其删除。对于支持创建Arrow-backed数据的I/O操作符,有一个dtype_backend参数:

import pandas

pandas.read_csv(fname, engine='pyarrow', dtype_backend='pyarrow')

请注意,引擎在某种程度上独立于后端。我们可以使用PyArrow函数(engine)读取CSV文件,同时使用NumPy数据类型(backend)的列,反之亦然。

相关问题