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)
ここで:
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 サイトの他の関連記事を参照してください。