Агрегирование скользящих окон для категориальных данных - PullRequest
0 голосов
/ 16 октября 2018

У меня есть один столбец Dataframe размером 5 миллиом строк.Я хочу уменьшить его до 25 тыс. Строк, объединяя каждые 200 строк в одну (25 тыс. Х 200 = 5 000 000).Это значение строки должно относиться к метке класса, которая наиболее часто встречается во всех 200 строках.

Пример:

import pandas as pd

df = pd.DataFrame({'a' :['s','s','t','s','s','t','s','t','t','w','w','t','w','s','d']})
print(df)

Out[60]: 
     a
0   s
1   s
2   t
3   s
4   s
5   t
6   s
7   t
8   t
9   w
10  w
11  t
12  w
13  s
14  w

Я хочу сделать что-то вроде этого (пример):

my_rolling_apply(my_column , widow_size= 3, function= majority_voted_class)

Чтобы получить в качестве вывода:

Out[2]: 
   a
0  s
1  s
2  t
3  w
4  w

Вопрос в том, как это можно сделать?Есть ли какая-нибудь функция, которая может справиться с этой задачей?

Обновление:

Единственная проблема здесь заключается в том, что мне нужно контролировать размер групп.И группа должна вывести группу одинакового размера, чтобы назначить наиболее распространенную метку в каждой группе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...