首頁 > 後端開發 > Python教學 > 如何有效處理Pandas的SettingWithCopyWarning?

如何有效處理Pandas的SettingWithCopyWarning?

Linda Hamilton
發布: 2024-12-25 15:02:12
原創
134 人瀏覽過

How Can I Effectively Handle Pandas' SettingWithCopyWarning?

處理Pandas中的SettingWithCopyWarning

將Pandas從0.11升級到0.13.0rc1時,使用者可能會遇到大量SettingWithCopyWarning訊息。一個這樣的例子是:

E:\FinReporter\FM_EXT.py:449: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_index,col_indexer] = value instead
quote_df['TVol']   = quote_df['TVol']/TVOL_SCALE
登入後複製

理解警告

SettingWithCopyWarning 標記可能會混淆的「連結」分配,例如:

df[df['A'] > 2]['B'] = new_val  # new_val not set in df
登入後複製

這並不總是有效預期的,特別是當第一個選擇返回副本時。要解決此問題,請使用:

df.loc[df['A'] > 2, 'B'] = new_val
登入後複製

解決提供的程式碼中的警告

在提供的程式碼片段中:

quote_df['TVol']   = quote_df['TVol']/TVOL_SCALE
登入後複製

您正在有效地執行鍊式賦值相當於:

quote_df = quote_df[quote_df['A'] > 2]
quote_df['TVol'] = new_val
登入後複製

此模式無法與反例區分開來,並會觸發警告。

停用警告

如果您確信寫入不會影響原始幀,請使用以下命令停用警告:

import pandas as pd
pd.options.mode.chained_assignment = None  # default='warn'
登入後複製

其他資訊

要要進一步了解,請參閱以下資源:

  • Pandas使用者指南:索引與選擇資料
  • Python 資料科學手冊:資料索引與選擇
  • 真正的 Python:Pandas 中的SettingWithCopyWarning
  • Dataquest:SettingwithCopyWarning:如何修正中的此警告
  • 走向資料科學:解釋中的SettingWithCopyWarning熊貓

以上是如何有效處理Pandas的SettingWithCopyWarning?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板