Как написать оператор Case в Pandas (с примером)


Оператор 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() с несколькими условиями

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.