ホームページ > バックエンド開発 > Python チュートリアル > 複数の列を処理するときにパンダの「apply」関数でエラーを解決する方法は?

複数の列を処理するときにパンダの「apply」関数でエラーを解決する方法は?

DDD
リリース: 2024-10-18 07:28:29
オリジナル
777 人が閲覧しました

How to Resolve Errors in Pandas 'apply' Function When Handling Multiple Columns?

複数の列を処理する Pandas 'apply' 関数に関する問題?

Pandas ライブラリは、行単位の変換用の 'apply' 関数を提供します。複数の列を含む操作を含みます。ただし、ユーザーが関数内の特定の列にアクセスしようとすると、問題が発生する可能性があります。

そのような問題の 1 つは、ユーザーが 2 つのスカラー値 ('a' と ' を取る関数を適用しようとした場合) に例示されています。 c') を入力として使用します。ただし、エラー メッセージは、名前 'a' が認識されないことを示しています。

この問題の解決策は、'apply' 関数内で列を参照するための正しい構文を使用することです。裸の列名 (「a」) を使用する代わりに、ユーザーはそれを角かっこ (「[」と「]」) で囲む必要があります。たとえば、「a」列にアクセスするには、「row['a']」と記述する必要があります。

改訂コード:

<code class="python">df['Value'] = df.apply(lambda row: my_test(row['a'], row['c']), axis=1)</code>
ログイン後にコピー

追加の考慮事項:

「apply」で使用するカスタム関数を定義する場合、それが正しいデータ型で動作することを確認することが重要です。提供されている更新された例では、「my_test」関数は、DataFrame 内のすべての行の入力値 (「a」) と「a」列の間の累積差を計算するように定義されています。これには、'a' と 'df'a'' の両方が数値である必要があります。

代替構文:

便宜上、Pandas は 'apply の代替構文を提供しています。 ' 複数の列を操作する場合。関数の引数として列の名前を指定すると、関数内で列の値に直接アクセスできます。

例:

<code class="python">def my_test2(row):
    return row['a'] % row['c']

df['Value'] = df.apply(my_test2, axis=1)</code>
ログイン後にコピー

以上が複数の列を処理するときにパンダの「apply」関数でエラーを解決する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート