Наивное предсказание с использованием панд - PullRequest
3 голосов
/ 12 мая 2019

Предположим, у меня есть набор данных:

ix    m_t1   m_t2
1     42     84
2     12     12
3     100    50

тогда мы можем использовать

df = df[['m_t1', 'm_t2']].pct_change(axis=1).mul(100)[1]

для расчета разницы между m_t1 и m_t2 в%

как

diff
100
0
-50

Я хотел бы применить эту разницу к m_t2, чтобы получить m_t3_predicted

m_t3_predicted
168
12
25

Как я могу это сделать?

P.S. Есть ли название для алгоритма?

1 Ответ

1 голос
/ 12 мая 2019

Попробуйте:

df_diff=df[['m_t1', 'm_t2']].pct_change(axis=1).mul(100).drop(columns=["m_t1"])
df_diff

    diff
0   100.0
1   0.0
2   -50.0

Переименовать столбец в df_diff:

df_diff.columns=["diff"]

Конкретные кадры данных:

df_result=pd.concat([df,df_diff],axis=1)

Затем рассчитать:

df_result["m_t3_predicted"]=df_result["m_t2"]+df_result["diff"]/100*df_result["m_t2"]

Результат:

    ix  m_t1    m_t2    diff    m_t3_predicted
0   1   42      84      100.0   168.0
1   2   12      12      0.0     12.0
2   3   100     50     -50.0    25.0
...