如何将 dill 文件中的 Pandas 对象转换为更高的 Pandas 版本?

问题描述

我有一些包含 Pandas 数据框的 dill 文件。这些数据框是用 Pandas 1.2.4 创建的。现在我需要使用 pandas 1.3(modin 需要)。

在使用 pandas 1.3 的脚本中,我需要加载这些 dill 文件。这是不可能的,因为 Pandas 1.3 无法处理反序列化或解释这些旧对象。我收到此异常:

TypeError: __cinit__() takes at least 2 positional arguments (0 given)

我知道 pandas.read_pickle,它应该解决这个问题(即提供向后兼容性),用于保存旧版本熊猫对象的泡菜文件。但我坚持使用 dill,因为除了数据帧之外,文件还包含只有 dill 才能序列化的自定义类。

所以我正在寻找一种方法来转换旧的 Pandas 对象并重新保存 dill 文件,以便能够使用 Pandas 1.3 加载它们。有没有办法做到这一点?

谢谢!

编辑:我不想反汇编文件内容,例如我有一个自定义对象,其属性保存数据框。我可能可以使用pandas 1.2.4 加载文件,将所有pandas 对象存储在一个单独的pickle 文件中,并将自定义对象存储在一个dill 文件中。然后切换到pandas 1.3,用pandas.read_pickle加载pickle文件,用dill加载dill文件,重新组合对象层次结构,用dill保存。所以我必须将我的问题重新表述为:有没有更直接、更不容易出错的方法来做到这一点?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)