Сохранение фрейма временных рядов с экономией памяти

У меня в бд лежит куча данных после обработки получается массив 4974917х256х91. Скорее всего после добавления массив перезаписывается но проверить отмасштабированные данные пока не понимаю как.

Мне нужна подсказка, как правильно сохранять данные в Pandas или NumPy?

Беру из бд определённые данные(временной ряд)

df = pd.read_sql(sql=f"""SELECT * FROM ... ORDER BY date;""", con=engine)

если есть пропуски разделяю данные

df2 = df.iloc[i[0]:i[1]]

делаю копию потому-что для добавления нужно проверять на вхождение параметров

train_scaled = df2.copy()

после чего масштабирую

train_scaled[mm[0]] =  df2[mm[0]].apply(lambda x: (x - float(mm[1])) / (float(mm[2]) - float(mm[1])))
train_scaled = train_scaled.iloc[:-1].values

дальше происходит магия

X_train = []
X_train.append(train_scaled[i-window:i])

13 гигов

X_train2 = np.array(X_train[:int((len(X_train) / 100) * 5)], dtype=np.float32)

выжирает больше 40 гигов памяти. Я не против если бы был уверен в правильности данных.

Подскажите как это сделать правильно. Заранее спасибо.


Ответы (0 шт):