Множественная замена в датафрейме по условию
Необходимо сделать замены в числовых данных в соответствии с условиями (так, как это делается в Эксель, но с меньшим количеством телодвижений).
Данные выглядят так: https://docs.google.com/spreadsheets/d/1hqwSh0FyHBnwp6G2srua7IgMsviVbgHjD50pMSu17Vs/edit?usp=sharing
Условия замены показателей следующие:
Использую df['Показатель 1'] = np.where( (df['Показатель 1'] >= 16)&(df['Показатель 1'] <= 30), '2 группа', df['Показатель 1']) , но не очень понимаю, как сделать несколько замен сразу (при замене хотя бы одного из показателей на НЕчисловой, выдает ошибку).
Может, есть какие-то более подходящие функции?
Ответы (1 шт):
Используйте pandas.cut - разбиение значений на дискретные интервалы
df = pd.DataFrame({'П1': [15, 16, 30, 31, 199, 200, 35.2, 166.3, 80.6, 43.4, 265.1, 26.4, 120.3, 55.5, 31.7, 118.4]})
df['П1_группы'] = pd.cut(df['П1'], bins=[float("-inf"), 15, 30, 199, float("inf")],
labels=['1 группа', '2 группа', '3 группа', '4 группа'], right=True)
print(df)
П1 П1_группы
0 15.0 1 группа
1 16.0 2 группа
2 30.0 2 группа
3 31.0 3 группа
4 199.0 3 группа
5 200.0 4 группа
6 35.2 3 группа
7 166.3 3 группа
8 80.6 3 группа
9 43.4 3 группа
10 265.1 4 группа
11 26.4 2 группа
12 120.3 3 группа
13 55.5 3 группа
14 31.7 3 группа
15 118.4 3 группа
Остальные столбцы - аналогично
