我試圖保留熊貓數據框的副本,以便我可以在保存原始數據時對其進行修改。但是當我修改副本時,原始數據框也會發生變化。例:爲什麼熊貓數據框可以彼此改變?
df1=pd.DataFrame({'col1':['a','b','c','d'],'col2':[1,2,3,4]})
df1
col1 col2
a 1
b 2
c 3
d 4
df2=df1
df2['col2']=df2['col2']+1
df1
col1 col2
a 2
b 3
c 4
d 5
我設置df2
等於df1
,那麼當我修改df2
,df1
也發生變化。爲什麼會這樣,並且有什麼方法可以保存熊貓數據框的「備份」而不用修改?
這是因爲你只是讓'df2'的代名詞'DF1 '。他們指的是同一個對象。爲了改變這種情況,我相信你可以做'df2 = df1.copy()'。 – zondo
這是一個Python問題,與大熊貓無關。當你做你的任務時,你會得到一個指向同一個對象的指針。你可以通過輸入你的IDE'id(df2)'和'id(df1)'來確認,注意這些值是相同的('id'返回變量引用的對象的內存位置)。你可以用列表來做同樣的事情。 'list_1 = [1,2]''list_2 = list_1'' list_2 [0] = 10'' >>> list_1' returns [10,2] – Alexander
http://nedbatchelder.com/text/names。html可能會幫助你一些相關的理解 –