Pandas DataFrame の apply メソッド

PythonPythonBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、Python の Pandas ライブラリの apply() メソッドの使い方を学びます。apply() メソッドを使うと、DataFrame の各行または各列に関数を適用でき、データの計算や変換に便利です。

VM のヒント

VM の起動が完了したら、左上隅をクリックして Notebook タブに切り替え、Jupyter Notebook を使って練習しましょう。

Jupyter Notebook の読み込みには数秒かかる場合があります。Jupyter Notebook の制限により、操作の検証は自動化できません。

学習中に問題がある場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。

必要なライブラリをインポートする

まずは、DataFrame オブジェクトと apply() メソッドを提供する Pandas ライブラリをインポートする必要があります。計算に必要な場合には、他のライブラリもインポートできます。

import pandas as pd

DataFrame を作成する

次に、操作対象の DataFrame を作成しましょう。Python のリストや辞書を使ってデータを定義できます。簡単のため、キーが列名を表し、値がデータを表す辞書を使いましょう。

data = {
    'Name': ['John', 'Emma', 'David', 'Mary'],
    'Age': [25, 30, 35, 40],
    'Salary': [50000, 60000, 70000, 80000]
}
df = pd.DataFrame(data)
print(df)

関数を定義する

次に、DataFrame に適用できる関数を定義しましょう。この関数は 1 つのパラメータを受け取り、それは DataFrame の 1 行または 1 列になります。

def double(x):
    return x * 2

関数を列に適用する

定義した関数を DataFrame の列に適用するには、apply() メソッドを使います。この例では、'Salary' 列に double() 関数を適用しましょう。

df['Salary'] = df['Salary'].apply(double)
print(df)

関数を行に適用する

apply() メソッドで axis=1 を指定することで、関数を DataFrame の行にも適用できます。この例では、DataFrame の各行に double() 関数を適用しましょう。

df = df.apply(double, axis=1)
print(df)

lambda 関数を適用する

個別の関数を定義する代わりに、apply() メソッドとともに lambda 関数をインラインで使用できます。lambda 関数は、任意の数の引数を取り、結果を返す小さな匿名関数です。この例では、'Age' 列に lambda 関数を適用して、各値の二乗を計算しましょう。

df['Age'] = df['Age'].apply(lambda x: x ** 2)
print(df)

まとめ

この実験では、Pandas の apply() メソッドを使って DataFrame の各行または各列に関数を適用する方法を学びました。関数を定義して列や行に適用する方法、および apply() メソッドとともに lambda 関数をインラインで使用する方法を見ました。apply() メソッドは、データに対して計算や変換を行うための強力なツールであり、データ分析のタスクを簡素化するのに役立ちます。