ホームページ >バックエンド開発 >Python チュートリアル >カスタム関数を複数の Pandas DataFrame 列に適用して新しい列を作成するにはどうすればよいですか?
Pandas DataFrame の複数の列に関数を適用する
複数の列とカスタム関数を含む DataFrame がある次の状況を考えてみましょう。これらの列に要素ごとに適用して、新しい列を作成したい場合
問題:
次の 3 つの列を持つ DataFrame があるとします:
df = pd.DataFrame({'ID':['1','2','3'], 'col_1': [0,2,3], 'col_2':[1,4,5]})
関数:
def get_sublist(sta, end): return mylist[sta:end+1]
あなたの目標は、get_sublist を 'col_1' 列と 'col_2' 列に適用することです。 df を実行して、'mylist' の対応するサブリストを含む新しい列 'col_3' を取得します。
解決策:
これを実現するには、次の Pandas 操作を使用できます。 :
df['col_3'] = df.apply(lambda x: get_sublist(x.col_1, x.col_2), axis=1)
内訳は次のとおりです。コード:
このメソッドを使用すると、結果の DataFrame は次の構造になります:
ID col_1 col_2 col_3 0 1 0 1 ['a', 'b'] 1 2 2 4 ['c', 'd', 'e'] 2 3 3 5 ['d', 'e', 'f']
このソリューションでは、任意のカスタム関数を apply() メソッドに渡すことができることに注意してください。複数の列に同時に適用します。 x.col_name を通じて列値にアクセスすると、スペースが含まれていたり、既存の DataFrame 属性と同じ名前であっても、列名を安全に使用できます。
以上がカスタム関数を複数の Pandas DataFrame 列に適用して新しい列を作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。