Оператор case — это тип оператора, который проходит через условия и возвращает значение при выполнении первого условия.
Самый простой способ реализовать оператор case в Pandas DataFrame — использовать функцию NumPy where() , которая использует следующий базовый синтаксис:
df['new_column'] = np.where(df['col2']<9, 'value1',
np.where(df['col2']<12, 'value2',
np.where(df['col2']<15, 'value3', 'value4')))
Эта конкретная функция просматривает значение в столбце с именем col2 и возвращает:
- « value1 », если значение в col2 меньше 9
- « value2 », если значение в col2 меньше 12
- « value3 », если значение в col2 меньше 15
- « value4 », если ни одно из предыдущих условий не верно
В следующем примере показано, как использовать эту функцию на практике.
Пример: Оператор Case в Pandas
Предположим, у нас есть следующие Pandas DataFrame:
import pandas as pd
import numpy as np
#create DataFrame
df = pd.DataFrame({'player': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
'points': [6, 8, 9, 9, 12, 14, 15, 17, 19, 22]})
#view DataFrame
df
player points
0 1 6
1 2 8
2 3 9
3 4 9
4 5 12
5 6 14
6 7 15
7 8 17
8 9 19
9 10 22
Мы можем использовать следующий синтаксис для написания оператора case, который создает новый столбец с именем class , значения которого определяются значениями в столбце points :
#add 'class' column using case-statement logic
df['class'] = np.where(df['points']<9, 'Bad',
np.where(df['points']<12, 'OK',
np.where(df['points']<15, 'Good', 'Great')))
#view updated DataFrame
df
player points class
0 1 6 Bad
1 2 8 Bad
2 3 9 OK
3 4 9 OK
4 5 12 Good
5 6 14 Good
6 7 15 Great
7 8 17 Great
8 9 19 Great
9 10 22 Great
Оператор case просмотрел значение в столбце точек и вернул:
- « Плохо », если значение в столбце баллов было меньше 9
- « ОК », если значение в столбце баллов было меньше 12
- « Хорошо », если значение в столбце баллов было меньше 15.
- « Отлично », если ни одно из предыдущих условий не выполняется
Примечание.Полную документацию по функции NumPy where() можно найти здесь .
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в Pandas:
Как создать новый столбец на основе условия в Pandas
Как использовать функцию NumPy where() с несколькими условиями