Pandas

Pandas: как применить функцию к каждой строке в DataFrame

В: Pandas

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

df['new_col'] = df.apply(lambda x: some function, axis= 1 )

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

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

Пример: применение функции к каждой строке в DataFrame

Предположим, у нас есть следующие Pandas DataFrame:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'A': [5, 4, 7, 9, 12, 9, 9, 4],
 'B': [10, 8, 10, 6, 6, 5, 9, 12]})

#view DataFrame
print(df)

# A B
#0 5 10
#1 4 8
#2 7 10
#3 9 6
#4 12 6
#5 9 5
#6 9 9
#7 4 12

Теперь предположим, что мы хотим применить функцию, которая умножает значения в столбцах A и B, а затем делит на 2.

Мы можем использовать следующий синтаксис, чтобы применить эту функцию к каждой строке в DataFrame:

#create new column by applying function to each row in DataFrame
df['z'] = df.apply ( lambda x: x['A'] \* x['B'] / 2, axis= 1 )

#view updated DataFrame
print(df)

# A B z
#0 5 10 25.0
#1 4 8 16.0
#2 7 10 35.0
#3 9 6 27.0
#4 12 6 36.0
#5 9 5 22.5
#6 9 9 40.5
#7 4 12 24.0

Столбец z отображает результаты функции.

Например:

  • Первый ряд: А*В/2=5*10/2= 25
  • Второй ряд: А*В/2=4*8/2= 16
  • Третий ряд: А*В/2=7*10/2= 35

И так далее.

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

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

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

Как применить функцию к Pandas Groupby
Как выполнить GroupBy Sum в Pandas
Как использовать Groupby и Plot в Pandas

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