Pandas: як використовувати apply і lambda разом


Ви можете використовувати такий базовий синтаксис, щоб застосувати лямбда-функцію до pandas DataFrame:

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

Наступні приклади показують, як використовувати цей синтаксис на практиці з наступними pandas DataFrame:

 import pandas as pd

#createDataFrame
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 to 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:28 a.m. 4

Приклад 1: використовуйте Apply і Lambda, щоб створити новий стовпець

Наступний код показує, як використовувати apply і лямбда для створення нового стовпця, значення якого залежать від значень існуючого стовпця:

 #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:28 4 Good

У цьому прикладі ми створили новий стовпець під назвою status , який мав такі значення:

  • « Погано », якщо значення в стовпчику балів менше 20.
  • « Добре », якщо значення в стовпці балів більше або дорівнює 20.

Приклад 2: використовуйте Apply і Lambda, щоб змінити існуючий стовпець

Наступний код показує, як використовувати apply і лямбда для зміни існуючого стовпця в 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 to 9.0 5
1 B 44.0 7
2 C 9.5 7
3D 7.0 9
4 E 7.0 12
5 F 5.5 9
6 G 40.0 9
7 A.M. 56.0 4

У цьому прикладі ми змінюємо значення існуючого стовпця точки за допомогою наступного правила в лямбда-функції:

  • Якщо значення менше 20, розділіть значення на 2.
  • Якщо значення більше або дорівнює 20, помножте значення на 2.

Використовуючи цю лямбда-функцію, ми змогли змінити значення існуючого стовпця точки .

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові функції в pandas:

Як застосувати функцію до Pandas Groupby
Як заповнити NaN значеннями з іншого стовпця в Pandas

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *