Вы можете использовать следующий базовый синтаксис для применения лямбда-функции к кадру данных 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