0
0 Комментариев

Python (3.6) , windows

надеюсь найдутся знатоки которые смогут помочь)

Имеется такая таблица

Код:

X2            X3 X4 Y Y1
01.02.2019 1 1 1
02.02.2019 2 2 0
02.02.2019 2 3 0
02.02.2019 2 1 1
03.02.2019 1 2 1
04.02.2019 2 3 0
05.02.2019 1 1 1
06.02.2019 2 2 0
07.02.2019 1 3 1
08.02.2019 2 1 1
09.02.2019 1 2 0
10.02.2019 2 3 1
11.02.2019 1 1 0
12.02.2019 2 2 1
13.02.2019 1 3 0
14.02.2019 2 1 1
15.02.2019 1 2 1
16.02.2019 2 3 0
17.02.2019 1 1 1
18.02.2019 2 2 0
И в столбце Y1 необходимо посчитать скользящее среднее столбца Y за последние 5 дней, но только с фильтрацией по условию Х3 и Х4. Фильтр равен текущему значению столбцов для текущей строки. Например для строки 04.02.2019 2 3 0 среднее будет равно 0, потому что для нее условию соответствует только строка 02.02.2019 2 3 0

Как это сделать не понимаю, знаю что это будет нечто вроде

filtered_X4 = df[‘X4’].where(condition_1 & condition_2 & condition_3)
Но как задать сами условия condition_1,2,3 не понимаю.

Видел много примеров когда известен фильтр, например

condition_1 = df[‘X2’].isin([2, 3, 5])
но это не то что мне нужно. В принципе нужно что-то очень похожее на функцию СРЗНАЧЕСЛИМН в экселе)

Как посчитать среднее знаю

df[‘Y1’] = filtered_X4.shift(1).rolling(window = 999999, min_periods = 1).mean()
, но не могу настроить фильтрацию


Добавить комментарий