Обратная разностная функция Python для многомерных временных рядов - PullRequest
1 голос
/ 17 мая 2019

Я проработал это пару часов безуспешно и решил обратиться к сообществу за помощью. Я смог различать ряды с помощью функции diff(), а также вручную, теперь я пытаюсь инвертировать функцию diff() в python для многомерного временного ряда.

Этот код не инвертирует разницу для строки 1 исходного кадра данных. Он в основном обратный и сдвигает значения вверх на строку.

#manually compute difference

cols = df.columns
diff_df = []
for col in cols:    
    diff_results = df[col] - df[col].shift(1)
    diff_results = diff_results.fillna(0) 
    diff_df.append(diff_results)
diff_df_res = pd.concat(diff_df, axis=1)



#reverse difference
cols = df.columns
diff_df = []
for col in cols:
    diff_results = df[col] + diff_df_res[col].shift(-1)
    diff_df.append(diff_results)
diff_df_res2 = pd.concat(diff_df, axis=1)
df:
               x1     x2    x3
2018-01-01  1336.0  184.0  17.0
2018-02-01  1204.0  157.0  15.0
2018-03-01  1603.0  208.0  25.0
2018-04-01  1287.0  187.0  21.0
2018-05-01  1412.0  220.0  28.0


diff_df_res:
               x1    x2    x3
2018-01-01    0.0   0.0   0.0
2018-02-01 -132.0 -27.0  -2.0
2018-03-01  399.0  51.0  10.0
2018-04-01 -316.0 -21.0  -4.0
2018-05-01  125.0  33.0   7.0


diff_df_res2:
                x1     x2    x3
2018-01-01  1204.0  157.0  15.0
2018-02-01  1603.0  208.0  25.0
2018-03-01  1287.0  187.0  21.0
2018-04-01  1412.0  220.0  28.0
2018-05-01     NaN    NaN   NaN
'''
...