Рубрики
Без рубрики

Pandas DataFrame Применить () Примеры

Функция Pandas DataFrame Apply () используется для применения функции вдоль оси данных DataFrame. Синтаксис функции: DEF применяется (Self, Func ,,

Автор оригинала: Pankaj Kumar.

Функция Pandas DataFrame Apply () используется для применения функции вдоль оси данных DataFrame. Синтаксис функции:

def apply(
    self,
    func,
    axis=0,
    broadcast=None,
    raw=False,
    reduce=None,
    result_type=None,
    args=(),
    **kwds
)

Важные параметры:

  • Func : Функция для применения к каждой строке или столбце DataFrame.
  • Ось : ось, вдоль которой применяется функция. Возможные значения {0 или «индекс», 1 или «столбцы»}, по умолчанию 0.
  • args : Позиционные аргументы переходят к функции. Это полезно, когда мы должны передавать дополнительные аргументы функции.
  • кварги : Дополнительные аргументы ключевых слов для передачи функции. Это полезно, когда мы должны пройти дополнительные аргументы ключевых слов к функции.

Pandas DataFrame Применить () Примеры

Давайте посмотрим на некоторые примеры использования функции Apply () на объекте DataFrame.

1. Применение функции к элементам DataFrame

import pandas as pd

df = pd.DataFrame({'A': [1, 2], 'B': [10, 20]})


def square(x):
    return x * x


df1 = df.apply(square)

print(df)
print(df1)

Выход:

   A   B
0  1  10
1  2  20

   A    B
0  1  100
1  4  400

DataFrame, на котором применяется функция (), вызывается остается неизменным. Функция Apply () возвращает новый объект DataFrame после применения функции к его элементам.

2. Применить () с лямбдой

Если вы посмотрите на вышеприведенный пример, наша функция Square () очень проста. Мы можем легко преобразовать его в функцию лямбда. Мы можем создать функцию лямбда при вызове функции Apply ().

df1 = df.apply(lambda x: x * x)

Выход будет оставаться таким же, как последний пример.

3. Применить () вдоль оси

Мы можем применить функцию вдоль оси. Но в последнем примере не используется ось. Функция применяется ко всем элементам датафарама.

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

import pandas as pd
import numpy as np

df = pd.DataFrame({'A': [1, 2], 'B': [10, 20]})

df1 = df.apply(np.sum, axis=0)
print(df1)

df1 = df.apply(np.sum, axis=1)
print(df1)

Выход:

A     3
B    30
dtype: int64

0    11
1    22
dtype: int64

В первом примере рассчитывается сумма элементов вдоль столбца. Принимая во внимание, что во втором примере рассчитывается сумма элементов вдоль ряда.

4. DataFrame Применить () с аргументами

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

import pandas as pd


def sum(x, y, z):
    return x + y + z


df = pd.DataFrame({'A': [1, 2], 'B': [10, 20]})

df1 = df.apply(sum, args=(1, 2))
print(df1)

Выход:

   A   B
0  4  13
1  5  23

5. DataFrame Применить () с позиционными аргументами и ключевыми словами

Давайте посмотрим на пример, где мы будем использовать параметры «args», так и «кваргс» для передачи позиционных и ключевых элементов аргументов к функции.

import pandas as pd


def sum(x, y, z, m):
    return (x + y + z) * m


df = pd.DataFrame({'A': [1, 2], 'B': [10, 20]})

df1 = df.apply(sum, args=(1, 2), m=10)
print(df1)

Выход:

    A    B
0  40  130
1  50  230

Функция DataFrame ApplyMap ()

Если вы хотите применить функциональный элемент-мудрый, вы можете использовать функцию ApplyMap (). Эта функция не имеет дополнительных аргументов. Функция применяется к каждому из элементов, и возвращаемое значение используется для создания объекта DataFrame результата.

import pandas as pd
import math

df = pd.DataFrame({'A': [1, 4], 'B': [100, 400]})
df1 = df.applymap(math.sqrt)

print(df)
print(df1)

Выход:

   A    B
0  1  100
1  4  400
     A     B
0  1.0  10.0
1  2.0  20.0

Давайте посмотрим на другой пример, где мы будем использовать функцию ApplyMap (), чтобы преобразовать все значения элементов в прописные буквы.

import pandas as pd

df = pd.DataFrame({'Name': ['Pankaj', 'Meghna'], 'Role': ['ceo', 'cto']})

df1 = df.applymap(str.upper)

print(df)
print(df1)

Выход:

     Name Role
0  Pankaj  ceo
1  Meghna  cto

     Name Role
0  PANKAJ  CEO
1  MEGHNA  CTO

Рекомендации