#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. Я попытался выбрать словарь и список чисел, и проблем не было.