」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > Pandas 什麼時候創建視圖而不是副本?

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

發佈於2024-11-06
瀏覽:448

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 

透過遵守這些規則,您可以清楚地了解Pandas 何時產生視圖或副本,從而確保在Python 腳本中進行高效的資料操作。

最新教學 更多>

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

Copyright© 2022 湘ICP备2022001581号-3