python - 如何为 pyarrow Table 列设置“类别”数据类型?
问题描述
我知道在镶木地板文件中category
编写熊猫时可以保留类型,使用.DataFrame
to_parquet
一开始,就我而言,我已经有一个 pyarrow Table
。我可以将其中一列设置为具有该category
类型吗?如果是,如何?(我无法在 Google 和 pyarrow 文档上找到提示)
谢谢你的帮助!最好的,
解决方案
在 pyarrow 中,分类类型称为“字典类型”。可以使用以下dictionary_encode()
方法将 pyarrow 数组转换为这样的类型:
>>> import pyarrow as pa
>>> table = pa.table({'a': ['A', 'B', 'A']})
>>> table.schema
a: string
>>> table.column('a')
<pyarrow.lib.ChunkedArray object at 0x7f1f94fb9938>
[
[
"A",
"B",
"A"
]
]
>>> table.column('a').dictionary_encode()
<pyarrow.lib.ChunkedArray object at 0x7f1f94fb9b48>
[
-- dictionary:
[
"A",
"B"
]
-- indices:
[
0,
1,
0
]
]
然后用这个新编码的列更改表有点复杂,但可以通过以下方式完成:
>>> table2 = table.set_column(0, "a", table.column('a').dictionary_encode())
>>> table2.schema
a: dictionary<values=string, indices=int32, ordered=0>
推荐阅读
- python - 如何解决 TypeError:'float' 对象在 python 中不可迭代
- ios - IOS 编译错误 Genexus 16 u8 SmartDevices Generation
- ios - 如何解析 x509 证书并提取其密钥的签名算法?
- flutter - 颤振文本小部件不出现
- python - 安装 Python.org 发行版后,如何显式安装和启动 64 位版本的 Python?
- html - HTML5
- python - Pandas pd.read_html() 函数给了我“HTTP 错误 403:禁止”
- python - 带有 rest_framework_simplejwt.token_blacklist 的 djongo 给出了创建表错误
- unity3d - Agora 的自定义视频源示例代码报错
- sql-server - 如何使用 sqoop 将数据导出到具有自动增量 ID 的 Microsoft Sql Table?