パンダのデータフレームのapply()の例

PandasのDataFrameのapply()関数は、DataFrameの軸に沿って関数を適用するために使用されます。関数の構文は次の通りです。

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

重要なパラメータは次のとおりです。

  • func: The function to apply to each row or column of the DataFrame.
  • axis: axis along which the function is applied. The possible values are {0 or ‘index’, 1 or ‘columns’}, default 0.
  • args: The positional arguments to pass to the function. This is helpful when we have to pass additional arguments to the function.
  • kwargs: additional keyword arguments to pass to the function. This is helpful when we have to pass additional keyword arguments to the function.

パンダのデータフレームのapply()の例

DataFrameオブジェクトでapply()関数を使った例をいくつか見てみましょう。

データフレームの要素に関数を適用する。

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

apply()関数が呼び出されるDataFrameは変更されず、apply()関数は要素に関数を適用した後に新しいDataFrameオブジェクトを返します。

2. ラムダを使ったapply()の適用

上記の例を見ると、私たちのsquare()関数は非常にシンプルです。簡単にラムダ関数に変換できます。apply()関数を呼び出しながら、ラムダ関数を作成することができます。

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

出力は前の例と同じままです。

3.軸方向で apply() を適用する。

軸に沿って関数を適用することができます。しかし、最後の例では軸の使用はありません。関数はDataFrameのすべての要素に適用されます。軸の使用方法は、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

最初の例では、列ごとの要素の合計が計算されます。一方、2番目の例では、行ごとの要素の合計が計算されます。

4. 引数を使用したDataFrameのapply()

複数のパラメータを受け入れる関数を適用したいとしましょう。その場合、追加のパラメータを ‘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のapply()

‘args’と’kwargs’パラメーターの両方を使用して、位置引数とキーワード引数を関数に渡す例を見てみましょう。

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

参考文献を日本語で言い換えると、お願いします。

  • Python Pandas Module Tutorial
  • Pandas apply() API Doc
コメントを残す 0

Your email address will not be published. Required fields are marked *