Pythonでラムダ関数とapplyを使ったデータ操作の実例

この記事では、Pythonでのデータ操作においてラムダ関数とapplyメソッドを効果的に使う方法について詳しく解説します。具体的なコード例とその解説、応用例を含めています。

目次

はじめに

Pythonでデータを操作する際、ラムダ関数とapplyメソッドは非常に便利です。特に、pandasのDataFrameなどで列や行に対して同じ操作を繰り返す必要がある場合、この組み合わせは力を発揮します。

基本的な使用方法

ラムダ関数の基本

ラムダ関数は無名関数を一行で表現するための仕組みです。
以下は基本的な使い方です。

# 通常の関数
def square(x):
    return x * x

# ラムダ関数
square = lambda x: x * x

applyメソッドの基本

applyメソッドは、DataFrameやSeriesに対して関数を適用するためのpandasのメソッドです。

import pandas as pd

# サンプルのDataFrame
df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6]
})

# 列Aに関数を適用
df['A'] = df['A'].apply(lambda x: x * x)

実例:売上データの処理

サンプルデータ

サンプルとして、以下のような売上データがあるとします。

import pandas as pd

# サンプルのDataFrame
df_sales = pd.DataFrame({
    'Product': ['Apple', 'Banana', 'Cherry'],
    'Sales': [120, 80, 200],
    'Cost': [100, 60, 180]
})

利益を計算する

このデータから、各製品ごとの利益を新たな列として追加します。

# 利益を計算して新たな列として追加
df_sales['Profit'] = df_sales.apply(lambda row: row['Sales'] - row['Cost'], axis=1)

応用例

条件分岐を用いた例

特定の条件に基づいて処理を行う場合も、ラムダ関数とapplyメソッドは有用です。

# Salesが100以上なら"High"、それ以下なら"Low"とする新しい列を追加
df_sales['Sales_Level'] = df_sales['Sales'].apply(lambda x: 'High' if x >= 100 else 'Low')

複数列を参照した例

複数の列を参照して新しい列を作ることも可能です。

# SalesとCostを用いて利益率を計算
df_sales['Profit_Rate'] = df_sales.apply(lambda row: (row['Profit'] / row['Sales']) * 100, axis=1)

まとめ

この記事では、Pythonでラムダ関数とapplyメソッドを用いたデータ操作の基本と応用を解説しました。これらの機能はデータ分析や前処理において非常に便利なツールです。ぜひ活用して、より効率的なデータ操作を行いましょう。

コメント

コメントする

目次