Функцию pandas apply() можно использовать для применения функции к строкам или столбцам кадра данных pandas.
Эта функция отличается от других функций, таких как drop() и replace() , которые предоставляют аргумент на месте:
df.drop(['column1'], inplace= True )
df.rename({'old_column' : 'new_column'}, inplace= True )
Функция apply() не имеет аргумента на месте, поэтому мы должны использовать следующий синтаксис для преобразования DataFrame на месте:
df = df.apply ( lambda x: x\* 2 )
В следующих примерах показано, как использовать этот синтаксис на практике со следующими пандами DataFrame:
import pandas as pd
#create DataFrame
df = pd.DataFrame({'points': [25, 12, 15, 14, 19, 23, 25, 29],
'assists': [5, 7, 7, 9, 12, 9, 9, 4],
'rebounds': [11, 8, 10, 6, 6, 5, 9, 12]})
#view DataFrame
df
# points assists rebounds
#0 25 5 11
#1 12 7 8
#2 15 7 10
#3 14 9 6
#4 19 12 6
#5 23 9 5
#6 25 9 9
#7 29 4 12**
Пример 1. Использование apply() вместо одного столбца
В следующем коде показано, как использовать apply() для преобразования одного столбца фрейма данных на месте:
#multiply all values in 'points' column by 2 inplace
df.loc[:, 'points'] = df.points.apply ( lambda x: x\* 2 )
#view updated DataFrame
df
points assists rebounds
0 50 5 11
1 24 7 8
2 30 7 10
3 28 9 6
4 38 12 6
5 46 9 5
6 50 9 9
7 58 4 12**
Пример 2. Использование apply() вместо нескольких столбцов
В следующем коде показано, как использовать apply() для преобразования нескольких столбцов фрейма данных на месте:
multiply all values in 'points' and 'rebounds' column by 2 inplace
df[['points', 'rebounds']] = df[['points', 'rebounds']].apply( lambda x: x\* 2 )
#view updated DataFrame
df
# points assists rebounds
#0 50 5 22
#1 24 7 16
#2 30 7 20
#3 28 9 12
#4 38 12 12
#5 46 9 10
#6 50 9 18
#7 58 4 24**
Пример 3: Используйте apply() для всех столбцов
В следующем коде показано, как использовать apply() для преобразования всех столбцов фрейма данных на месте:
#multiply values in all columns by 2
df = df.apply ( lambda x: x\* 2 )
#view updated DataFrame
df
# points assists rebounds
#0 50 10 22
#1 24 14 16
#2 30 14 20
#3 28 18 12
#4 38 24 12
#5 46 18 10
#6 50 18 18
#7 58 8 24**
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные функции в pandas:
Как рассчитать сумму столбцов в Pandas
Как рассчитать среднее значение столбцов в Pandas
Как найти максимальное значение столбцов в Pandas