Я использовал pd.concat(list_of_dataframes)
в прошлом без проблем, но в настоящее время у меня проблема.Загруженные маринованные dataframes не могут быть объединены
У меня есть набор маринованные dataframes, и я положил их в список, как это:
pickle_frames = [pickle.load(open(pickle_file, 'rb')) for pickle_file in pickles_list]
редактировать: также попытался это в for
цикле вместо понимания, как это так, на всякий случай, но с тем же результатом:
pickle_frames = []
for pickle_file in pickles_list:
this_pickle = pickle.load(open(pickle_file, 'rb'))
pickle_frames.append(this_pickle)
редактировать: Я также попытался литьем загруженных солений, как Numpy массивов, как это так, опять с тем же результатом:
pickle_frames = [np.array(pickle.load(open(pickle_file, 'rb'))) for pickle_file in pickles_list]
Тогда я пытаюсь конкатенации:
df = pd.concat(pickle_frames, keys=pickles_list
)
И получить эту ошибку:
TypeError: cannot concatenate a non-NDFrame object
Я проверил список кадров и она выглядит хорошо; type(pickle_frames)
возвращает list
и type(pickle_frames[0])
возвращает pandas.core.frame.DataFrame
... Я могу загрузить и выполнить другие операции DataFrame на pickle_frames[i]
для любых i
.
Любые идеи относительно того, почему concat
не распознает загруженные ранее рассортированные информационные кадры, когда они кажутся совершенно хорошими?
=======================
Полный код:
import pickle, os
import pandas as pd
import numpy as np
path = os.getcwd()
pickles_list = [f for f in os.listdir(path) if f.endswith('.p')]
pickle_frames = [pd.DataFrame(pickle.load(open(pickle_file, 'rb')) for pickle_file in pickles_list]
df = pd.concat(pickle_frames, keys=pickles_list)
Знаете ли вы, что ваша текущая версия панд соответствует версии, с которой были написаны кадры? – mdurant
@mdurant Да; Я сделал и мариновал кадры около часа назад. – tegan
как вы мариновали объекты, вы использовали 'pd.DataFrame.to_pickle'? – qwwqwwq