У меня есть DataFrame:
ID Value 1 1 2 2 3 1 4 1 5 2 6 3 7 4 8 5 9 10 10 15
Я хочу сгруппировать по своему значению и посчитать ID в настроенном диапазоне: <= 2, 3-9,> = 10
Результаты будут выглядеть так:
Value ID <=2 5 3-9 3 >= 10 2
Не думаю, что вам нужен групповой.
labels = ['<=2', '3-9', '>=10'] bins = [0,2,9, np.inf] pd.cut(df['Value'],bins=bins,labels=labels).value_counts().reset_index() #out[] index Value <=2 5 3-9 3 >=10 2
Использование pd.cut и groupby
pd.cut
groupby
import numpy as np labels = ['<=2', '3-9', '>=10'] bins = [0,2,9, np.inf] df.groupby(pd.cut(df['Value'], bins, labels=labels)).size().to_frame('ID') # Output ID Value <= 2 5 3-9 3 >=10 2