Метод count
Метод count применяется к объекту Rolling,
который создаётся с помощью аксессора rolling у DataFrame
или Series. Он подсчитывает количество непустых значений
в каждом скользящем окне. Если в окне присутствуют пропуски
(NaN), они не учитываются. Метод не принимает дополнительных
параметров и возвращает объект того же типа, что и исходные данные.
Синтаксис
df.rolling(window).count()
ser.rolling(window).count()
Пример
Создадим таблицу с пропусками и подсчитаем количество непустых значений
в окне размером 3:
import pandas as pd
import numpy as np
df = pd.DataFrame({
'a': [1, 2, np.nan, 4, 5],
'b': [10, np.nan, 30, 40, 50]
})
res = df.rolling(window=3).count()
print(res)
Результат выполнения кода:
a b
0 1.0 1.0
1 2.0 1.0
2 2.0 2.0
3 2.0 3.0
4 2.0 3.0
В первой строке окно содержит только одно значение, во второй - два, в третьей - два (пропуск в столбце 'a'), далее окна заполняются полностью.
Пример
Применим метод count к Series с пропусками:
import pandas as pd
import numpy as np
ser = pd.Series([1, np.nan, 3, 4, np.nan, 6])
res = ser.rolling(window=3).count()
print(res)
Результат выполнения кода:
0 1.0
1 1.0
2 2.0
3 3.0
4 2.0
5 2.0
dtype: float64
Пример
Метод count может использоваться с другими параметрами
аксессора rolling, например, с центрированием окон:
import pandas as pd
import numpy as np
ser = pd.Series([1, 2, np.nan, 4, 5])
res = ser.rolling(window=3, center=True).count()
print(res)
Результат выполнения кода:
0 1.0
1 2.0
2 2.0
3 2.0
4 2.0
dtype: float64