Search code examples
pythonpandasdataframepredictiondifference

Naive prediction using pandas


Suppose, I have a data set:

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

then, we can use

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

to calculate the difference between m_t1 and m_t2 in %

like

diff
100
0
-50

I would like to apply this difference on m_t2 to get m_t3_predicted

m_t3_predicted
168
12
25

How can I do it?

P.S. Is there any name for the algorithm?


Solution

  • Try this:

    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
    

    Rename column in df_diff:

    df_diff.columns=["diff"]
    

    Concat dataframes:

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

    Then calculate:

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

    Result:

        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