如何直接构建采用PyArrow后端的Pandas DataFrame?
直接构建PyArrow后端的Pandas DataFrame方法
在Pandas 2.0及以上版本中,确实有几种更直接的方式构建PyArrow后端的DataFrame,无需依赖pd.read_xxx(type_backend='pyarrow')或事后转换:
1. 初始化DataFrame时指定PyArrow类型
通过pd.ArrowDtype显式定义列的类型,让Pandas直接使用PyArrow作为后端存储:
import pandas as pd import pyarrow as pa df = pd.DataFrame( { "integer": [1, 2, 3, 4], "text": ["foo", "bar", "baz", "qux"], "decimal": [1.1, 2.2, 3.3, 4.4] }, dtype={ "integer": pd.ArrowDtype(pa.int64()), "text": pd.ArrowDtype(pa.string()), "decimal": pd.ArrowDtype(pa.float64()) } ) # 验证类型(会显示ArrowDtype对应的PyArrow类型) print(df.dtypes)
2. 从PyArrow对象直接转换
如果你已经有PyArrow的Table或Array对象,可以直接转换为Pandas DataFrame,自动使用PyArrow后端:
import pyarrow as pa import pandas as pd # 先构建PyArrow Table arrow_table = pa.table({ "id": [101, 102, 103], "category": ["A", "B", "C"] }) # 直接转为PyArrow后端的DataFrame df = pd.DataFrame(arrow_table) # 或者使用更明确的pd.from_arrow() # df = pd.from_arrow(arrow_table) print(df.dtypes)
注意事项
- 确保已经安装
pyarrow库(可通过pip install pyarrow安装) - 并非所有PyArrow类型都能被Pandas兼容,建议使用常见的标准类型(如
int64、string、float64、bool等)
内容的提问来源于stack exchange,提问作者Attila the Fun
相关产品推荐
相关产品推荐

