Подсчитайте конкретное значение в скользящем окне панд - PullRequest
0 голосов
/ 28 мая 2019

У меня есть датафрейм с тысячами строк. Один столбец состоит только из 3 значений: -1, 0, 1. Я бы хотел посчитать в скользящем окне (скажем, 100), сколько раз встречается конкретное значение (скажем, 0).

Как я могу это сделать? Я не вижу такого метода, связанного с объектом Rolling, и я не знаю, как это сделать с помощью apply.

1 Ответ

0 голосов
/ 28 мая 2019

Все довольно просто, я быстро написал демо.Вы должны получить идею.

Пример

# Parameters
# iterable - column
# size - window size (100)

def window(iterable, size=2):
    i = iter(iterable)
    win = []
    for e in range(0, size):
        win.append(next(i))
    yield win
    for e in i:
        win = win[1:] + [e]
        yield win

# Sample data
a = [1, 0, 0, 0, 1, 1]

from collections import Counter

result = []
value = 1 # Value to keep count (-1, 0, 1)

for i in window(a, 2):
    count = Counter(i)[value]
    result.append(count)

# Sample output
print(result)
[1, 0, 0, 1, 2]
...