非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

【Python】DataFrameのapplyメソッドを使い方まとめ

   

Python/DataFrameにおいて、applyメソッドは関数を行または列単位で適用する非常に便利な機能です。このメソッドを使うことでデータの変換やカスタム処理を簡単に実現できます。

以下に、解説とプログラム例を紹介します。

列方向・行方向の集計:合計と平均の例

このコードは、Pandasデータフレームの`apply`メソッドを使った列・行方向の集計や平均計算を示しています。まず、サンプルデータフレームを作成し、`axis=0`で列方向に合計を計算します。次に、`axis=1`で行方向に合計を計算し、最後に行方向で平均を求める例を示します。カスタム関数として`lambda`式を使用して平均計算を行っている点が特徴的です。出力結果は、データ分析やレポート作成に役立ちます。

import pandas as pd

# サンプルデータフレーム
data = {
    'A': [1, 2, 3],
    'B': [4, 5, 6],
    'C': [7, 8, 9]
}
df = pd.DataFrame(data)

# 列方向に合計を計算
column_sum = df.apply(sum, axis=0)
print(column_sum)

# 行方向に合計を計算
row_sum = df.apply(sum, axis=1)
print(row_sum)

# 行方向に平均を計算
row_mean = df.apply(lambda x: x.mean(), axis=1)
print(row_mean)

# 出力
# A     6
# B    15
# C    24
# dtype: int64
# 0    12
# 1    15
# 2    18
# dtype: int64
# 0    4.0
# 1    5.0
# 2    6.0
# dtype: float64
 

 

カスタム関数でデータを加工

データフレーム全体にカスタム関数を適用する例です。サンプルデータフレームを作成し、全ての値に10を加算するadd_ten関数を定義します。その後、applymapを使用してセル単位で関数を適用し、加工済みのデータフレームを出力します。applymapはデータ全体の値を変換する際に便利です。

import pandas as pd

# サンプルデータフレーム
data = {
    'A': [1, 2, 3],
    'B': [4, 5, 6],
    'C': [7, 8, 9]
}
df = pd.DataFrame(data)

# カスタム関数を定義
def add_ten(value):
    return value + 10

# 行方向にカスタム関数を適用
modified_df = df.applymap(add_ten)
print(modified_df)

# 出力
#     A   B   C
# 0  11  14  17
# 1  12  15  18
# 2  13  16  19
 

 

まとめ

applyメソッドは、データクレンジングや集計処理、条件分岐によるカスタム計算など、多岐にわたる場面で活躍します。データフレーム全体に適用したい場合はapplymapを使用します。行や列ではなくセル単位で関数を適用したいときに便利です。

 

スポンサーリンク

 - Python