Как использовать Pandas apply() на месте


Функцию 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

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