了解Pandas 視圖與複製規則
問題陳述
問題陳述Pandas Python 資料操作庫,提供了一系列選擇和修改資料幀的方法。但是,確定選擇何時建立原始資料幀的副本或其視圖可能會令人困惑。這種歧義會導致在嘗試修改資料時出現意外行為。
簡單規則用於取得多資料類型物件的索引器總是會建立一個副本。
將規則應用於特定情況df[df.C <= df.B] = 7654321讓我們檢查一下您提到的複雜情況:
df[df.C <= df.B].ix[:, 'B':'E']在這種情況下,適用索引器設定的規則。由於條件涉及兩列的比較,Pandas 會建立資料幀的中間副本來評估條件。然後就地修改該副本。因此,該表達式成功更改了原始資料幀中的值。 但是,鍊式索引表達式:
違反了規則。連結兩個索引器會建立單獨的 Python 操作,使 Pandas 難以可靠地攔截。這可能會導致意外行為,因此強烈建議不要這樣做。
使用查詢修改資料幀df.loc[df.C <= df.B, 'B':'E'] = 7654321要根據查詢修改資料幀值,請使用以下方法:此表達式使用單一索引器來評估查詢條件並指定要修改的列子集。它比鍊式索引方法更快、更可靠。
以上是如何根據查詢修改 Pandas 資料框而不出現意外行為?的詳細內容。更多資訊請關注PHP中文網其他相關文章!