Считать, если данные выше, чем другой ряд в скользящем окне последних двух (или более) значений в пандах
У меня есть эти две серии в DataFrame:
A B
1 2
2 3
2 1
4 3
5 2
и я бы создал новую колонку df['C
] подсчитывает, сколько раз значение в столбце df['A']
выше значения в столбце df['B']
для скользящего окна предыдущих 2 (или более) рядов.
Результат будет примерно таким:
A B C
1 2 NaN
2 3 NaN
2 1 0
4 3 1
5 2 2
Я также хотел бы создать столбец, который суммирует данные в df['A']
выше чем df['B']
всегда используя скользящее окно.
Со следующим результатом:
A B C D
1 2 NaN NaN
2 3 NaN NaN
2 1 0 0
4 3 1 2
5 2 2 6
Заранее спасибо.
1 ответ
IIUC
df.assign(C=df.A.gt(df.B).rolling(2).sum().shift(),D=(df.A.gt(df.B)*df.A).rolling(2).sum().shift())
Out[1267]:
A B C D
0 1 2 NaN NaN
1 2 3 NaN NaN
2 2 1 0.0 0.0
3 4 3 1.0 2.0
4 5 2 2.0 6.0