首頁 > 後端開發 > Python教學 > 為什麼 Pandas DataFrame 修改有時會影響原始 DataFrame?

為什麼 Pandas DataFrame 修改有時會影響原始 DataFrame?

Linda Hamilton
發布: 2024-11-08 03:21:01
原創
602 人瀏覽過

Why do Pandas DataFrame modifications sometimes affect the original DataFrame?

了解Pandas 中資料幀複製的需求

使用Pandas 資料幀時,選擇是否建立資料幀可能會產生的副本資料框重大影響。預設情況下,索引資料幀會傳回原始資料結構的參考。因此,對子集進行的任何修改都將直接修改父框架。

為了說明此行為,請考慮以下範例:

df = pd.DataFrame({'x': [1, 2]})
df_sub = df[0:1]
df_sub.x = -1
print(df)
登入後複製

輸出:

   x
0 -1
1  2
登入後複製

如您所觀察到的,修改子集的值會直接改變原始資料幀中的對應值。

在必須保護原始資料幀不被修改的情況下,複製是必要的。這可以使用 .copy() 方法來實作。以下是一個範例:

df_sub_copy = df[0:1].copy()
df_sub_copy.x = -1
print(df)
登入後複製

輸出:

   x
0  1
1  2
登入後複製

在這種情況下,.copy() 確保對 df_sub_copy 所做的任何更改都不會影響原始 df。

重要的是要理解這種行為僅適用於深複製,這意味著整個引用的資料都複製到新物件中。相反,淺拷貝會建立一個新對象,該對象引用與原始對象相同的基礎資料。因此,對淺拷貝所做的任何更改也會影響原始資料幀。

以上是為什麼 Pandas DataFrame 修改有時會影響原始 DataFrame?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板