ホームページ >バックエンド開発 >Python チュートリアル >Pandas DataFrame の複数の列に関数を適用するにはどうすればよいですか?

Pandas DataFrame の複数の列に関数を適用するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-08 15:16:12549ブラウズ

How to Apply a Function to Multiple Columns in a Pandas DataFrame?

Pandas データフレームの複数の列に関数を適用する

Pandas データフレームに複数の列を持つデータセットがあり、次のようにしたいとします。これらの列のうち 2 つにカスタム関数を適用します。これは、データの操作と分析における一般的なタスクとなる可能性があります。これを達成するためのステップバイステップのガイドは次のとおりです。

1.関数の定義:

2 つの列の値を表す 2 つの入力を受け取るカスタム関数を定義します。この関数は、これらの入力に対して必要な操作を実行する必要があります。

2. Lambda を使用して関数を適用する:

Pandas は、データフレームの各行に関数を適用できるラムダ関数を提供します。これを利用して、選択した列にカスタム関数を適用できます。

ラムダを使用して関数を複数の列に適用するための構文は次のとおりです:

df['new_column_name'] = df.apply(lambda x: your_function(x.column_1, x.column_2), axis=1)

ここで:

  • new_column_name は、 function.
  • your_function は、2 つの入力を受け取り、目的の出力を返すユーザー定義関数です。
  • x はデータフレームの各行を表し、x.column_1 と x.column_2 は値にアクセスします。
  • axis=1 は、関数が各行ではなく各行に適用されることを示します。列。

3.例:

次のデータフレーム例を考えます:

df = pd.DataFrame({'ID':['1','2','3'], 'col_1': [0,2,3], 'col_2':[1,4,5]})

値に基づいて元のリスト mylist のサブリストを含む 'col_3' という新しい列を作成するとします。列1と列2にあります。 get_sublist 関数を次のように定義できます:

def get_sublist(sta, end):
    return ['a', 'b', 'c', 'd', 'e', 'f'][sta:end+1]

次に、ラムダを使用してこの関数を次のように適用できます:

df['col_3'] = df.apply(lambda x: get_sublist(x.col_1, x.col_2), axis=1)

これにより、データフレームに新しい列 'col_3' が作成されます。目的のサブリスト。

4.代替案:

ラムダの使用は、関数を複数のデータフレーム列に適用するための簡潔で汎用性の高いアプローチです。ただし、より明示的な方法を希望する場合は、Series を入力として受け取るカスタム関数で apply() メソッドを使用することもできます。このアプローチには、行を表す単一の入力を受け取り、必要に応じてその特定の行を操作する関数の定義が含まれます。

以上がPandas DataFrame の複数の列に関数を適用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。