У меня есть один столбец 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
Вопрос в том, как это можно сделать?Есть ли какая-нибудь функция, которая может справиться с этой задачей?
Обновление:
Единственная проблема здесь заключается в том, что мне нужно контролировать размер групп.И группа должна вывести группу одинакового размера, чтобы назначить наиболее распространенную метку в каждой группе.