2017-07-05 126 views
-1

我有一個數據框df。現在,我把這個備份DF使用:如何使用現有數據框創建新的數據框?

df_backup = df 

後來在我的代碼,我刪除了原來的一些記錄DF使用:

df.drop(df.index[indexes], inplace = True) 

這些行會從備份中刪除,以及。 它看起來像df_backup只是df的副本。我如何解耦?

如果我改變任何東西到df,它不應該影響df_backup

回答

1

你可以通過一個實際的副本去耦(副本是一個單獨的對象)

df_backup = df.copy() 

安東尼Sottile指出的那樣,你是在創造另一個引用您的原始數據幀,而不是創建一個新對象。這意味着您可以更改您的dfdf_backup,兩者都會顯示該更改。他還建議使用good link來幫助理解這個

+2

可能值得補充一點,'df_backup = df'不會創建副本(因爲python是引用語言)並且只是使兩個引用指向同一個對象。 OP似乎對此感到困惑:)也許https://stackoverflow.com/questions/986006/how-do-i-pass-a-variable-by-reference可能會清除一些東西 –

相關問題