Pandas: как использовать Apply и Lambda вместе


Вы можете использовать следующий базовый синтаксис для применения лямбда-функции к кадру данных pandas:

df['col'] = df['col'].apply ( lambda x: ' value1 ' if x < 20 else ' value2')

В следующих примерах показано, как использовать этот синтаксис на практике со следующими пандами DataFrame:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'team': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'],
 'points': [18, 22, 19, 14, 14, 11, 20, 28],
 'assists': [5, 7, 7, 9, 12, 9, 9, 4]})

#view DataFrame
print(df)

 team points assists
0 A 18 5
1 B 22 7
2 C 19 7
3 D 14 9
4 E 14 12
5 F 11 9
6 G 20 9
7 H 28 4

Пример 1: использование Apply и Lambda для создания нового столбца

В следующем коде показано, как использовать apply и lambda для создания нового столбца, значения которого зависят от значений существующего столбца:

#create new column called 'status'
df['status'] = df['points'].apply ( lambda x: ' Bad ' if x < 20 else ' Good')

#view updated DataFrame
print(df)

 team points assists status
0 A 18 5 Bad
1 B 22 7 Good
2 C 19 7 Bad
3 D 14 9 Bad
4 E 14 12 Bad
5 F 11 9 Bad
6 G 20 9 Good
7 H 28 4 Good

В этом примере мы создали новый столбец с именем status , который принимал следующие значения:

  • « Плохо », если значение в столбце очков было меньше 20.
  • « Хорошо », если значение в столбце баллов больше или равно 20.

Пример 2: использование Apply и Lambda для изменения существующего столбца

В следующем коде показано, как использовать apply и lambda для изменения существующего столбца в DataFrame:

#modify existing 'points' column
df['points'] = df['points'].apply ( lambda x: x/2 if x < 20 else x\*2)

#view updated DataFrame
print(df)

 team points assists
0 A 9.0 5
1 B 44.0 7
2 C 9.5 7
3 D 7.0 9
4 E 7.0 12
5 F 5.5 9
6 G 40.0 9
7 H 56.0 4

В этом примере мы изменили значения в столбце существующих точек , используя следующее правило в лямбда-функции:

  • Если значение меньше 20, разделите значение на 2.
  • Если значение больше или равно 20, умножьте значение на 2.

Используя эту лямбда-функцию, мы смогли изменить значения в столбце существующих точек .

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

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

Как применить функцию к Pandas Groupby
Как заполнить NaN значениями из другого столбца в Pandas

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