Ответ 1
Используйте shift.
df['dA'] = df['A'] - df['A'].shift(-1)
Давайте скажем, что у меня есть такой кадр данных
A B
0 a b
1 c d
2 e f
3 g h
0,1,2,3 - времена, a, c, e, g - один временной ряд, а b, d, f, h - другой временной ряд. Мне нужно иметь возможность добавлять два столбца в фреймворк orignal, который получается путем вычисления разностей последовательных строк для определенных столбцов.
Мне нужно что-то вроде этого
A B dA
0 a b (a-c)
1 c d (c-e)
2 e f (e-g)
3 g h Nan
Я видел что-то, называемое diff, в dataframe/series, но это немного отличается, поскольку в первом элементе будет Nan.
Используйте shift.
df['dA'] = df['A'] - df['A'].shift(-1)
Вы можете использовать diff
и передать -1
в качестве аргумента periods
:
>>> df = pd.DataFrame({"A": [9, 4, 2, 1], "B": [12, 7, 5, 4]})
>>> df["dA"] = df["A"].diff(-1)
>>> df
A B dA
0 9 12 5
1 4 7 2
2 2 5 1
3 1 4 NaN
[4 rows x 3 columns]