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

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

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-18 07:30:30121ブラウズ

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 サイトの他の関連記事を参照してください。

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