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