Adding row shifting in pandas dataframe

前端 未结 1 774
小蘑菇
小蘑菇 2021-01-27 02:52

I have a pandas df, which I created by using shift() function iterating through the original df:

for i in range(2, 4):
            


        
1条回答
  •  陌清茗
    陌清茗 (楼主)
    2021-01-27 03:44

    Use DataFrame.append with dictionary with key x:

    df = pd.DataFrame({'x':range(10)})
    
    df1 = df.append({'x':np.nan}, ignore_index=True)
    #alternative
    #df1 = df.append(pd.Series([np.nan], index=['x']), ignore_index=True)
    
    for i in range(2, 10):
        df1["lag_{}".format(i)] = df1.x.shift(i)
    print (df1)
          x  lag_2  lag_3  lag_4  lag_5  lag_6  lag_7  lag_8  lag_9
    0   0.0    NaN    NaN    NaN    NaN    NaN    NaN    NaN    NaN
    1   1.0    NaN    NaN    NaN    NaN    NaN    NaN    NaN    NaN
    2   2.0    0.0    NaN    NaN    NaN    NaN    NaN    NaN    NaN
    3   3.0    1.0    0.0    NaN    NaN    NaN    NaN    NaN    NaN
    4   4.0    2.0    1.0    0.0    NaN    NaN    NaN    NaN    NaN
    5   5.0    3.0    2.0    1.0    0.0    NaN    NaN    NaN    NaN
    6   6.0    4.0    3.0    2.0    1.0    0.0    NaN    NaN    NaN
    7   7.0    5.0    4.0    3.0    2.0    1.0    0.0    NaN    NaN
    8   8.0    6.0    5.0    4.0    3.0    2.0    1.0    0.0    NaN
    9   9.0    7.0    6.0    5.0    4.0    3.0    2.0    1.0    0.0
    10  NaN    8.0    7.0    6.0    5.0    4.0    3.0    2.0    1.0
    

    0 讨论(0)
提交回复
热议问题