」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 當修改從子集派生的數據范圍時,為什麼會發生``setwithCopyWarning''?

當修改從子集派生的數據范圍時,為什麼會發生``setwithCopyWarning''?

發佈於2025-02-21
瀏覽:851

Why Does `SettingWithCopyWarning` Occur When Modifying DataFrames Derived from Subsets? 
step-by-by-step errod reproduction

考慮以下代碼: [2 d = {'col1':[1,2,3,4],'col2':[3,4,5,6]} df = pd.dataframe(data = d) df ['new_column'] =無 df.loc [0,'new_column'] = 100

最初,沒有警告。但是,基於DF的子集創建一個新的數據幀: new_df = df.loc [df.col1> 2] ,然後嘗試使用.loc修改新的數據frame:

new_df.loc [2,'new_column'] = 100

解決方案:使用.copy()用於從子集

new_df_copy = df.loc [df.col1>> 2] .copy() new_df_copy.loc[2, 'new_column'] = 100

By invoking .copy(), you create an independent copy of the subset, avoiding the warning when modifying values.

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3