[英]Loading dataframe from 1.1.5 fails on pandas 1.0.1
I have a dataframe saved to a pickle (with a bunch of other stuff, as a dictionary).我有一个 dataframe 保存到一个泡菜(还有一堆其他的东西,作为字典)。 It was saved when using pandas version 1.1.5.使用 pandas 版本 1.1.5 时保存。
I'm trying to open it with version 1.0.1 but get the following error我正在尝试使用 1.0.1 版本打开它,但出现以下错误
File "<stdin>", line 1, in <module>
File "/opt/conda/lib/python3.7/site-packages/pandas/core/generic.py", line 5272, in __getattr__
if self._info_axis._can_hold_identifiers_and_holds_name(name):
File "/opt/conda/lib/python3.7/site-packages/pandas/core/generic.py", line 5272, in __getattr__
if self._info_axis._can_hold_identifiers_and_holds_name(name):
File "/opt/conda/lib/python3.7/site-packages/pandas/core/generic.py", line 5272, in __getattr__
if self._info_axis._can_hold_identifiers_and_holds_name(name):
[Previous line repeated 493 more times]
File "/opt/conda/lib/python3.7/site-packages/pandas/core/generic.py", line 493, in _info_axis
return getattr(self, self._info_axis_name)
File "/opt/conda/lib/python3.7/site-packages/pandas/core/generic.py", line 5270, in __getattr__
return object.__getattribute__(self, name)
File "pandas/_libs/properties.pyx", line 63, in pandas._libs.properties.AxisProperty.__get__
File "/opt/conda/lib/python3.7/site-packages/pandas/core/generic.py", line 5270, in __getattr__
return object.__getattribute__(self, name)
RecursionError: maximum recursion depth exceeded while calling a Python object
Is there any way to overcome this error?有没有办法克服这个错误? I can save the dataframe again, but can't downgrade or upgrade versions on both computers.我可以再次保存 dataframe,但无法在两台计算机上降级或升级版本。
Thanks谢谢
I was unable to replicate your exact error but I was able to get another error when I tried to read a pickle file created by pandas v1.1.5 using pandas v1.0.1.我无法复制您的确切错误,但是当我尝试使用 pandas v1.0.1 读取由 pandas v1.1.5 创建的泡菜文件时,我得到了另一个错误。 I was able to workaround the issue by saving the file using the feather format.我能够通过使用羽毛格式保存文件来解决这个问题。 Sample code:-示例代码:-
In [23]: cake # in version v1.1.5
Out[23]:
replicate recipe temperature angle temp
1 1 A 175 42 175
2 1 A 185 46 185
3 1 A 195 47 195
4 1 A 205 39 205
5 1 A 215 53 215
.. ... ... ... ... ...
266 15 C 185 28 185
267 15 C 195 25 195
268 15 C 205 25 205
269 15 C 215 31 215
270 15 C 225 25 225
In [24]: cake.reset_index().to_feather("cake.feather")
Reading the file in v1.0.1:在 v1.0.1 中读取文件:
In [15]: cake = pd.read_feather("cake.feather")
In [16]: cake
Out[16]:
index replicate recipe temperature angle temp
0 1 1 A 175 42 175
1 2 1 A 185 46 185
2 3 1 A 195 47 195
3 4 1 A 205 39 205
4 5 1 A 215 53 215
.. ... ... ... ... ... ...
265 266 15 C 185 28 185
266 267 15 C 195 25 195
267 268 15 C 205 25 205
268 269 15 C 215 31 215
269 270 15 C 225 25 225
In [17]: pd.__version__
Out[17]: '1.0.1'
In [18]: cake.set_index('index') # To set the index
The drawbacks with this approach are that there's an additional dependency on pyarrow
and saving in the feather binary format requires that you reset the index as I've done above.这种方法的缺点是对pyarrow
有额外的依赖,并且以羽毛二进制格式保存需要您像我上面所做的那样重置索引。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.