首頁  >  文章  >  後端開發  >  Pandas 什麼時候創建視圖而不是副本?

Pandas 什麼時候創建視圖而不是副本?

Susan Sarandon
Susan Sarandon原創
2024-11-04 05:02:01692瀏覽

When Does Pandas Create a View vs a Copy?

Pandas 視圖與副本產生規則

Pandas 在決定 DataFrame 上的切片操作是否產生視圖或結果時採用特定規則複製。透過了解這些規則,您可以優化資料操作並避免意外行為。

從總是產生副本的操作開始:

  1. 所有操作,除了那些專門設計用於修改的操作就地 DataFrame,建立副本。
  2. 只有某些操作支援 inplace=True 參數,此參數允許直接在原始 DataFrame 中進行修改。

接下來,讓我們考慮操作這可能會導致視圖:

  1. 設定值(例如.loc、.iloc、.iat 和.at)的索引器就地操作,修改原始DataFrame 而不建立副本。
  2. 從單一資料類型物件檢索資料的索引器通常會建立一個視圖,除非底層記憶體佈局阻止這種最佳化。
  3. 相反,從多資料類型物件檢索資料的索引器總是會建立一個副本。

關於您的範例:

  • df.query('2
  • df.iloc[3] = 70 和 df.ix[1, 'B':'E'] = 222 改變 df,因為它們存取單一 dtype 物件並就地設定值。
  • df[df.C
  • 但是df[df.C

要根據查詢修改特定值,請使用正確的loc 語法:

df.loc[df.C <= df.B, 'B':'E']

遵守這些規則,您可以清楚地了解當Pandas 產生視圖或副本時,確保Python 腳本中高效率的資料操作。

以上是Pandas 什麼時候創建視圖而不是副本?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn