Pandas SettingwithCopyWarning 警告處理
數據處理時,常使用 python 的數據結構及分析工具 Pandas  (Python Data Analysis Library) ,在使用時經常遇到一項警告: SettingWithCopyWarning ,這警告是學習 Pandas 時最常見的障礙之一,從 Stack Overflow 的討論串數量就知道自己並不孤單。來回爬了幾次,還是有看沒懂,確認過執行結果如預期,就先把警告忽略。   直到發現這篇 SettingwithCopyWarning- How to Fix This Warning in Pandas ,有著清楚定義 + 圖片支援 + 這警告的歷史,耐心讀完後終於瞭解如何避免,在使用 Pandas 時有相當大的幫助,可避免預期外的數據操作,導致結果錯誤,以下摘錄重點。     這警告在說什麼?    這是個警告,而非錯誤,所以程式碼還是會執行。它通知你的操作可能未達到預期的效果,因此應檢查結果以確保沒有犯錯。做決定前,最好花點時間了解發生什麼事情。   首先,瞭解 pandas 中,你的操作,有可能返回 (return) 的是數據的 view  或是 copy 。        from  here     上圖中,左邊 df2 是 df1 的一個子集,是一個 view;而右邊的 df2 是一個新的獨立物件,是一個 copy。    當你試著更改資料時,可能會導致問題:      from  here     你可能想修改原始 df1 數據(左),或是只想修改 df2(右邊)。這警告叫你開一下這薛丁格的盒子,確認裡面貓的生死。     警告原因:Chained assignment 及 Hidden chaining     數據操作定義:   分配 (Assignment,or set) — 設置某些值的操作;如 data = pd.read_csv('xbox-3-day-auctions.csv')  取得 (Access, or get) — 返回某物值的操作;如下面的索引和鏈接  索引 (Indexing) — 對數據子集的分配或取得方法; 如 data [1:5]  鏈接 (Chaining) — 連續使用多個索引操作; 如 data [1:5] [1:3]       Chained assignmen = 4 +...