Python入門:pandasのapplyとlambdaを使ってデータを柔軟に加工する

pandas python 1

pandasでのデータ加工に慣れてくると、
「列の値を少し変換したい」「条件によって値を変えたい」といった場面が増えてきます。

こうした処理でよく使われるのが、
applylambda の組み合わせです。

この記事では、

  • applyとは何か
  • lambdaとは何か
  • 実際にどう使うのか

を順を追って解説していきます。

pandasの導入記事はこちら。

Python入門:pandasの基本をやさしく解説(データ操作の超入門) – Lean Data Office

apply は、データの各要素に対して処理を行うための仕組みです。

例えば、「salesをすべて2倍にする」といった処理をしたい場合、
通常はループを書く必要があります。

しかしpandasでは、applyを使うことで
シンプルに書くことができます。

サンプルデータの準備

まずは例となるデータを用意します。

Python

import pandas as pd

data = {

“name”: [“A”, “B”, “C”],

“sales”: [100, 200, 300]

}

df = pd.DataFrame(data)
Show more lines


applyの基本的な使い方

まずは単純な例です。

Python

df[“sales_double”] = df[“sales”].apply(lambda x: x * 2)

print(df)
Show more lines

このコードは「salesを2倍にした列」を追加しています。


処理の流れを理解する

この1行は分解して考えると分かりやすくなります。

Python

df[“sales”].apply(lambda x: x * 2)
Show more lines

ここでは次の処理が行われています。

  1. df["sales"] で sales列を取り出す
  2. apply() を使って各要素に処理を適用する
  3. lambda x: x * 2 で「値を2倍にする」

つまり、

100 → 200
200 → 400
300 → 600

という変換を1つずつ行っています。


lambdaとは何か

lambda は、その場で簡単な関数を作る書き方です。

先ほどのコードは、普通の関数で書くと次のようになります。

Python

def double(x):

return x * 2

df[“sales”].apply(double)
Show more lines

これを短く書いたものが:

Python

lambda x: x * 2
Show more lines

です。


条件による値の変更

applyの強みは、「条件分岐」が書けることです。

例えば、売上によって分類する場合です。

Python

df[“rank”] = df[“sales”].apply(

lambda x: “high” if x >= 200 else “low”

)
Show more lines

この処理では、

  • 200以上 → “high”
  • それ以外 → “low”

という新しい列が作られます。


なぜapplyを使うのか

ここが重要なポイントです。

pandasにはすでに以下のような機能があります:

  • sum()
  • mean()
  • groupby()

しかし、これらでは対応できない
「細かい独自ルール」の処理が出てきます。

例:

  • 特定条件で文字列を分ける
  • 数値を複雑に変換する
  • フォーマットを整える

こういう場合に apply が必要になります。


行単位で処理する(少し応用)

列だけでなく、行全体を対象にすることもできます。

Python

data = {

“name”: [“A”, “B”],

“sales”: [100, 300],

“country”: [“JP”, “US”]

}

df = pd.DataFrame(data)

df[“label”] = df.apply(

lambda row: row[“country”] + “_” + str(row[“sales”]),

axis=1

)
Show more lines

ここでは1行ずつ処理しています。

ポイントは axis=1 です。

  • axis=0 → 列方向(デフォルト)
  • axis=1 → 行方向

この記事では、pandasの applylambda について解説しました。

  • applyは「各要素に処理を適用する仕組み」
  • lambdaは「簡単な関数をその場で作る書き方」
  • 組み合わせることで柔軟なデータ加工ができる

最初は少し難しく感じるかもしれませんが、
やっていることはシンプルです。

「1つずつ値を取り出して、変換しているだけ」

この考え方が理解できれば、
かなり自由にデータ処理ができるようになります。

筋トレとオートメーションが趣味。 モバイルアプリ個人開発者。 データ処理・可視化とレポートにハマり備忘録と情報共有のためにブログ開設し運営している。