由于错误 "Files with more than one child are not supported",无法将文件另存为 parquet?

Unable to save file as parquet due to error "Files with more than one child are not supported"?

我使用 python 安装了 pyarrow 的 anaconda 发行版。起初,我有一个 166 列的数据集,在我对数据的第一次迭代中,我不得不将很多数据分解成虚拟变量,所以它增加到 915 列,在细化阶段,我不得不对一些数据进行分箱,因此,增长到 1880 列。

自从 915 以来我无法将文件保存为 HDF,所以我进入了镶木地板,然后在最后阶段镶木地板在我身上失败了 ArrowNotImplementedError: Fields with more than one child are not supported.

幸运的是,我能够将它写成 CSV,但这在我的驱动器中占用了近 3gb space 我想知道这个错误的含义。列非常简单,它们要么是类别,要么是二进制(数字),仅此而已。我有一些缺失值,但我使用 XGBOOST 进行训练,所以没有问题。

有谁知道为什么仅仅增加镶木地板的列数突然无法保存我的文件?我已经完成了 describe()、info() 和许多其他操作,没有任何问题,我什至在没有保存数据的情况下训练了 xgboost 模型,但是聚合所有这些列需要很长时间。

data.to_parquet("../data/5_all_data.parquet") => 没用

ArrowNotImplementedError: Fields with more than one child are not supported.

data.to_hdf("../data/5_all_data.h5", key="data") => 没用

NotImplementedError: Cannot store a category dtype in a HDF5 dataset that uses format="fixed". Use format="table".

data.to_csv("../data/5_all_data.csv") => 有效

data.info()

<class 'pandas.core.frame.DataFrame'>
Int64Index: 605847 entries, 630776 to 1049122
Data columns (total 1880 columns):

dtypes: category(118), float64(88), int64(38), uint8(1636)
memory usage: 1.6 GB

请帮忙

问题是错误消息在这里没有帮助。在我的案例中,真正的问题是有 2 个列具有完全相同的名称。在上下更改版本并更改列类型和一堆其他东西之后,我所要做的就是重命名列,我可以在任何版本的包中保存到 parquet。