Pandas的文档解释了如何使用PyArrow作为IO方法的后端。然而,我无法从中理解这两种选择之间的区别:
PyArrow
df = pd.read_csv(data, engine="pyarrow") # and df_pyarrow = pd.read_csv(data, dtype_backend="pyarrow")
是什么东西?
ncgqoxb01#
engine指定要使用的CSV * 解析器引擎 *。可用选项为c、python和pyarrow。其中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参数:
engine
c
python
pyarrow
dtype_backend
import pandas pandas.read_csv(fname, engine='pyarrow', dtype_backend='pyarrow')
请注意,引擎在某种程度上独立于后端。我们可以使用PyArrow函数(engine)读取CSV文件,同时使用NumPy数据类型(backend)的列,反之亦然。
backend
1条答案
按热度按时间ncgqoxb01#
engine
指定要使用的CSV * 解析器引擎 *。可用选项为c
、python
和pyarrow
。其中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
参数:请注意,引擎在某种程度上独立于后端。我们可以使用PyArrow函数(
engine
)读取CSV文件,同时使用NumPy数据类型(backend
)的列,反之亦然。