微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决如何将 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 举报,一经查实,本站将立刻删除。