Сохранение объекта DataFrame в Google Colab и загрузка файла pickle на моем локальном компьютере приводят к ошибке рекурсии

#python #pandas #pickle #google-colaboratory

#python #pandas #pickle #google-colaboratory

Вопрос:

Я использовал Google colab для обучения некоторых моделей XGB и сохранял результаты в файле pickle, после чего я загружал и читал их на своем локальном компьютере для анализа. Это работало нормально в течение последних нескольких месяцев до недавнего времени, когда я больше не мог загружать файл pickle.

Я воссоздал ошибку как таковую:

В Google colab:

 import pickle
import pandas as pd
a = [[1,2,3]]
with open('./test.pkl', "wb") as file:
    pickle.dump(pd.DataFrame(a), file)
with open('./test.pkl', 'rb') as handle:
    b = pickle.load(handle)
print(b)
  

b печатается как задумано.

На локальном компьютере (пробовал на 3 разных компьютерах, у всех была одна и та же ошибка рекурсии.):

 with open('./test.pkl', 'rb') as handle:
    b = pickle.load(handle)
print(b)
  

Запуск этого даст

 AttributeError: 'DataFrame' object has no attribute '_data'
  

И использование pycharm debugger для проверки того, что представляет собой объект b в режиме отладчика, приводит к

 RecursionError: maximum recursion depth exceeded while calling a Python object
Unexpected error, recovered safely.
  

Странно то, что он работает отлично, пока я снова читаю файл pickle в Google colab, но терпит неудачу, когда я читаю его на локальном компьютере…

Наконец, эта проблема возникает только в том случае, если я выбираю DataFrame. Я попытался выбрать словарь и список чисел, и проблем не было.