首頁  >  文章  >  後端開發  >  將函數應用於 Pandas 中的多列時如何解決名稱錯誤?

將函數應用於 Pandas 中的多列時如何解決名稱錯誤?

Linda Hamilton
Linda Hamilton原創
2024-10-18 07:30:30120瀏覽

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 中的多列時如何解決名稱錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn