Метод 1: pd.cut
То, что вы хотите, это pd.cut
, чтобы назначить «метки» для определенных «диапазонов», в данном случае называемых bins
:
df['new_column'] = pd.cut(df['first_column'],
bins=[-np.inf, 1,3,50, np.inf],
labels=['bad', 'good', 'great', 'supergreat'])
first_column second_column new_column
0 1 10 bad
1 2 20 good
2 3 30 good
3 5 50 great
Мы также можем использовать numpy.select
, который принимает несколько условий и на основе этих условий возвращает значение (выбор):
conditions = [
df['first_column'] <= 1,
df['first_column'].between(1, 3),
(df['first_column'] >= 4) & (df['second_column'] >= 50),
df['first_column'] >= 4
]
choices = ['bad', 'good', 'supergreat', 'great']
df['new_column'] = np.select(conditions, choices)
first_column second_column new_column
0 1 10 bad
1 2 20 good
2 3 30 good
3 5 50 supergreat