#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