У меня есть train_df
и test_df
, которые взяты из одного и того же исходного кадра данных, но были разделены в некоторой пропорции для формирования наборов обучающих и тестовых данных соответственно.
Как обучаем, так и тестируемфреймы данных имеют идентичную структуру:
- PeriodIndex с ежедневными сегментами
- n количество столбцов, которые представляют наблюдаемые значения в этих временных интервалах, например, Продажи, Цена и т. д.
Теперь я хочу построить yhat_df
, в котором хранятся прогнозные значения для каждого из столбцов.В «наивном» случае значения yhat_df
столбцов являются просто последним наблюдаемым значением набора обучающих данных.
Итак, я собираюсь построить yhat_df
, как показано ниже:
import pandas as pd
yhat_df = pd.DataFrame().reindex_like(test_df)
yhat_df[train_df.columns[0]].fillna(train_df.tail(1).values[0][0], inplace=True)
yhat_df(train_df.columns[1]].fillna(train_df.tail(1).values[0][1], inplace=True)
Это выглядит какработать, и так как у меня есть только два столбца, дополнительная печать является терпимой.
Мне было интересно, есть ли более простой способ, особенно тот, который не требует, чтобы я переходил столбец за столбцом.
Я попробовал следующее, но это просто правильно заполняет значения столбца, где совпадают значения PeriodIndex.Кажется, fillna()
пытается сделать join()
сортировок внутри Индекса:
yhat_df.fillna(train_df.tail(1), inplace=True)
Если бы я мог найти способ для fillna()
игнорировать индекс, возможно, это сработало бы?