首頁 > 後端開發 > Python教學 > 如何理解解決Pandas的SettingWithCopyWarning?

如何理解解決Pandas的SettingWithCopyWarning?

DDD
發布: 2024-12-26 04:37:10
原創
750 人瀏覽過

How to Understand and Resolve Pandas' SettingWithCopyWarning?

了解 Pandas 中的SettingWithCopyWarning

背景:

背景:

背景:

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

Pandas 0.133.及更高版本介紹設定WithCopyWarning以突出顯示可能引起的混亂通過「連結」作業。此警告旨在解決 DataFrame 副本被修改而導致意外結果的情況。

quote_df.loc[row_index, 'TVol'] = value
登入後複製

該警告意味著什麼?

此警告表示某個數值正在 DataFrame 的切片副本上設定。具體來說,它建議將以下行:

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

如何修復警告:

提供的解決方案警告是使用loc 索引代替。但是,這可能不適合所有用例。如果您不關心更新原始DataFrame,您可以安全地停用警告:

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

其他說明:
quote_df = quote_df[quote_df['TVol'] > 0]
quote_df['TVol'] = quote_df['TVol']/TVOL_SCALE
登入後複製

SettingWithCopyWarning 標記連結的分配並不總是按預期工作。當第一個選擇傳回 DataFrame 的副本,並且隨後對該副本進行指派時,就會出現問題。此模式可能會導致混亂,因為變更不會反映在原始 DataFrame 中。

在您的情況下,以下程式碼會導致警告:
  • Since quote_df['TVol' ] 是一個副本,賦值不會修改原始DataFrame。相反,請考慮使用:
  • 其他資源:
  • [Pandas 使用者指南:索引和選擇資料](https://pandas. pydata .org/pandas-docs/stable/user_guide/indexing.html)
[Python資料科學手冊:資料索引與選擇](https://jakevdp.github.io/PythonDataScienceHandbook/02.01-indexing-and-selecting-data.html)[真正的Python:Pandas中的SettingWithCopyWarning:檢視與檢視副本](https://realpython.com/settingwithcopywarning-in-pandas/)[Dataquest:SettingwithCopyWarning:如何修復Pandas 中的此警告](https://www .dataquest.io/blog/ settingswithcopywarning-pandas/)[走向資料科學:解釋中的SettingWithCopyWarning pandas](https://towardsdatascience.com/explaining-the-settingwithcopywarning-in-pandas-520ea63f963a)

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

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