Если вы хотите сгруппировать P
, например, по квартилям, запустите:
gr = P.groupby(pd.qcut(P.A, 4, labels=False))
Затем вы можете выполнить любые операции с этими группами.
Для презентации ниже у вас есть толькораспечатка P
ограничена 20 строками:
for key, grp in gr:
print(f'\nGroup: {key}\n{grp}')
, что дает:
Group: 0
A B
0 8 24
3 10 94
10 9 93
15 4 91
17 7 49
Group: 1
A B
7 34 24
8 15 60
12 27 4
13 31 1
14 13 83
Group: 2
A B
4 52 98
5 53 66
9 58 16
16 59 67
18 47 65
Group: 3
A B
1 67 87
2 79 48
6 98 14
11 86 2
19 61 14
Как видите, каждая группа (квартиль) имеет 5 членов, поэтому группировка правильная.
В качестве дополнения
Если вас интересуют границы каждого квартиля, запустите:
pd.qcut(P.A, 4, labels=False, retbins=True)[1]
Затем cut
вернет 2 результата(кортеж).Первый элемент (номер 0) - это результат, возвращенный ранее, но на этот раз нас интересует элемент second (номер 1) - границы корзины.
Для ваших данных они:
array([ 4. , 12.25, 40.5 , 59.5 , 98. ])
Так, например, первый квартиль находится между 4 и 12,35 .