Pandas データフレームの複数の列に関数を適用する
状況は次のとおりです。関数とデータフレームが定義されており、目標は、関数をデータフレームの 2 つの特定の列に適用して、新しい列を生成することです。ただし、この関数で apply メソッドを使用しようとすると、エラーが発生します。
この問題に対処するには、次のような複数のアプローチがあります。
列名を使用したラムダ式
簡潔で読みやすい解決策は、apply 内でラムダ式を使用することです。メソッド:
df['col_3'] = df.apply(lambda x: get_sublist(x.col_1, x.col_2), axis=1)
このアプローチでは、数値インデックスの代わりに列名を直接利用するため、エラーが発生しにくくなります。
サンプル データを使用した例
サンプル データを考えてみましょう:
df = pd.DataFrame({'ID':['1', '2', '3'], 'col_1': [0, 2, 3], 'col_2':[1, 4, 5]}) mylist = ['a', 'b', 'c', 'd', 'e', 'f']
前のコードを実行すると、新しいコードが生成されます。目的の結果を含む列、col_3:
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]
標準以外の列名の角かっこ
列名にスペースが含まれているか、既存のデータフレーム属性と一致する場合、角かっこを使用できます:
df['col_3'] = df.apply(lambda x: f(x['col 1'], x['col 2']), axis=1)
以上が複数の Pandas データフレーム列に関数を適用して新しい列を作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。