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

カスタム関数を複数の Pandas DataFrame 列に適用して新しい列を作成するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-27 12:16:14770ブラウズ

How Can I Apply a Custom Function to Multiple Pandas DataFrame Columns to Create a New Column?

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)

内訳は次のとおりです。コード:

  • df.apply(): 指定された関数を要素ごとに DataFrame の各行に適用します。
  • lambda x: 単一の引数 x を受け入れる匿名関数。 DataFrame の行を表します。
  • x: 'col_1' と 'col_2' の値を含む DataFrame 行オブジェクト現在の反復の列。
  • get_sublist(x.col_1, x.col_2): 現在の行の 'col_1' と 'col_2' の値を使用して get_sublist 関数を呼び出します。
  • 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 サイトの他の関連記事を参照してください。

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