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