多列的Pandas“apply”函數故障排除
嘗試使用“apply”將函數應用於Pandas 資料框中的多列時' 函數時,如果列名未包含在字串中或函數定義中出現語法錯誤,使用者可能會遇到錯誤訊息。
要解決未定義名稱的問題,請確保指定列名在單引號或雙引號內。例如,不要使用 'row[a]',而使用 'row['a']' 或 'row["a"]'。
此外,如果 'apply' 中使用的函數涉及複雜的操作或多個循環,檢查任何語法錯誤或遺失的語句至關重要。這些錯誤可能會影響函數的執行並導致不正確的結果或錯誤訊息。
考慮以下範例:
df = DataFrame({'a': np.random.randn(6),
'b': ['foo', 'bar'] * 3,
'c': np.random.randn(6)})
def my_test(row):
cum_diff = 0
for ix in df.index():
cum_diff = cum_diff (row['a'] - df['a'][ix])
return cum_diff
在此範例中,錯誤訊息「IndexError:索引超出範圍」是由於在循環期間嘗試存取不存在的索引而產生的。若要修正此問題,請確保索引位於資料幀的範圍內或使用不同的迭代方法,例如:
def my_test(row):
cum_diff = 0
for index, value in df.iterrows():
cum_diff = (row['a'] - value['a'])
return cum_diff
透過仔細檢查函數並將列名稱括在字串中,您可以有效地解決問題並利用具有多個列的「apply」函數。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3