尝试使用 pandas 读取镶木地板文件会引发“尚无法统一具有空值的字典”错误

问题描述 投票:0回答:1

我正在尝试使用以下方式读取分区镶木地板文件:

df = pd.read_parquet(basepath_to_files)

但是,这会引发错误:

ArrowInvalid: Cannot yet unify dictionaries with nulls

从单个(未分区).parquet 文件读取完全相同的数据不会引发错误。

如何加载这个分区数据?

python pandas parquet pyarrow
1个回答
0
投票

依赖默认设置可能不是最好的主意,特别是因为这些设置在相对较新的版本中已经发生了变化。如果您还没有的话,请务必查看 pandas docs。对 null 类型的引用太多,无法忽略:

  • use_nullable_dtypesbool,默认False
    • 如果为 True,则使用使用 pd.NA 作为结果 DataFrame 缺失值指示符的数据类型。 (仅适用于 pyarrow 引擎)随着将来添加支持 pd.NA 的新数据类型,此选项的输出将更改为使用这些数据类型。注意:这是一个实验性选项,行为(例如附加支持数据类型)可能会更改,恕不另行通知。
    • 自 2.0 版本起已弃用。
  • dtype_backend{‘numpy_nullable’,‘pyarrow’},默认‘numpy_nullable’
    • 应用于生成的 DataFrame 的后端数据类型(仍处于实验阶段)。 行为如下:
      • “numpy_nullable”:返回 nullable-dtype-backed DataFrame(默认)。
      • “pyarrow”:返回 pyarrow 支持的可为空的 ArrowDtype DataFrame。
    • 2.0版本新增功能。

可能首先要检查您的

pd.__version__
,看看您目前处于什么位置。然后,如果您高于 2.0,请添加参数,添加
dtype_backend = ‘pyarrow’
看起来是第一个要尝试的事情。

© www.soinside.com 2019 - 2024. All rights reserved.