добавьте совокупное значение на основе числового диапазона в панд

#pandas

Вопрос:

Мне бы не помешал кое-какой совет. У меня есть фрейм данных, и я хочу классифицировать данные по столбцам «a», Чтобы, если они попадают в диапазон (0-4, 5-9, 10-14 и т. Д.), Разделить их на группы по 5 и создать новый столбец » b » с кумулятивным значением, начиная с 0, Которое будет представлять диапазон

если фрейм данных такой

 df = pd.DataFrame(data={'a': [9,5,4,2,7,5,6,19,2,0,8,21,14]})  

столбец b должен выглядеть следующим образом

 df['b'] = [1,1,0,0,1,1,1,3,0,0,1,4,2]  

Я не могу понять, так что любые указатели потрясающие, спасибо.

Ответ №1:

Ваш ожидаемый результат не так ясен, но я полагаю, что вы ищете что-то подобное:

 df['b'] = round(df['a'] / 5)  

Или, возможно, это (усечение, а не округление):

 df['b'] = df['a'] // 5  

Ответ №2:

 df = pd.DataFrame(data={'a': [9,5,4,2,7,5,6,19,2,0,8,21,14]}) df['b'] = df.apply(lambda x : pd.cut(x,[-1,4,9,14,19,23],labels=[0,1,2,3,4])) print(df)  

выход:

 a b 0 9 1 1 5 1 2 4 0 3 2 0 4 7 1 5 5 1 6 6 1 7 19 3 8 2 0 9 0 0 10 8 1 11 21 4 12 14 2