ホームページ > バックエンド開発 > Python チュートリアル > Pandas の複数の列に関数を適用する際の NameErrors をトラブルシューティングする方法

Pandas の複数の列に関数を適用する際の NameErrors をトラブルシューティングする方法

Linda Hamilton
リリース: 2024-10-18 07:30:30
オリジナル
224 人が閲覧しました

How to Troubleshoot NameErrors When Applying Functions to Multiple Columns in Pandas?

複数の列を参照する Pandas 'apply' 関数のトラブルシューティング

Pandas DataFrame の複数の列にカスタム関数を適用しようとすると、 'apply' 関数で NameError が発生しました。

エラー メッセージ「グローバル名 'a' が定義されていません」は、関数内で 'a' 変数にアクセスできないことを示します。詳しく調べると、列名は「row['a']」のように引用符で囲む必要があることがわかります。

修正されたコードは次のようになります。

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

ただし、この構文エラーを解決した後でも、より複雑な関数を使用するとコードは引き続き失敗します。これは別の問題を示唆しています。

提供された関数の重要なステップは、DataFrame のインデックスを反復処理し、パラメーター 'a' を列 'a' の各値と比較することです。これらの要素にアクセスするには、構文を次のように調整する必要があります:

<code class="python">def my_test(a):
    cum_diff = 0
    for ix in df.index:
        cum_diff += (a - df['a'][ix])
    return cum_diff</code>
ログイン後にコピー

これらの修正を組み込むことで、コードは期待どおりに機能するようになります。

以上がPandas の複数の列に関数を適用する際の NameErrors をトラブルシューティングする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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