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


Оператор Case — это тип оператора, который циклически перебирает условия и возвращает значение при выполнении первого условия.

Самый простой способ реализовать оператор case в DataFrame Pandas — использовать функцию NumPywhere() , которая использует следующий базовый синтаксис:

 df[' new_column '] = np. where (df[' col2 ']<9, 'value1',
                   n.p. where (df[' col2 ']<12, 'value2',
                   n.p. where (df[' col2 ']<15, 'value3', 'value4')))

Эта конкретная функция просматривает значение в столбце с именем col2 и возвращает:

  • « значение1 », если значение в столбце 2 меньше 9
  • « значение2 », если значение в столбце 2 меньше 12.
  • « value3 », если значение в столбце 2 меньше 15.
  • « value4 », если ни одно из предыдущих условий не верно.

В следующем примере показано, как использовать эту функцию на практике.

Пример: оператор случая в Pandas

Предположим, у нас есть следующий DataFrame pandas:

 import pandas as pd
import numpy as np

#createDataFrame
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 , значения которого определяются значениями в столбце точек :

 #add 'class' column using case-statement logic
df[' class '] = np. where (df[' points ']<9, 'Bad',
              n.p. where (df[' points ']<12, 'OK',
              n.p. 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.
  • « Отлично », если ни одно из предыдущих условий не верно.

Примечание . Полную документацию по функции NumPywhere() можно найти здесь .

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в Pandas:

Как создать новый столбец на основе условия в Pandas
Как использовать функцию NumPy Where() с несколькими условиями

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *