2016-09-26 27 views
-1

我最近看到這樣的代碼中使用pandas.DataFrame.copy():爲什麼列提取

import pandas as pd 
data = pd.read_csv('/path/to/some/data.csv') 
colX = data['colX'].copy() 
data.drop(labels=['colX'], inplace=True, axis=1) 

我知道,使對象的顯式副本,我需要copy(),但在這種情況下,當提取並隨後刪除一個列表時,是否有充分理由使用copy()?在評論

+0

嗯,我們不知道這裏的意圖,用戶可能希望該列的不同副本,然後從原來的DF刪除列,以便他們可以自由地在該列只是操作不影響原DF – EdChum

+0

但,原始數據框如何被影響,如果列被從中刪除? –

+0

我在說的是,用戶可能希望將該列與主df分開,當然如果用戶只是想刪除該列,然後採取副本毫無意義,如果他們的目的是要刪除該列,但對於實例他們沒有采取副本,而是採取了引用,那麼對該列的操作可能會或可能不會影響原始df,如果你沒有刪除它。這裏的要點是這裏沒有用戶意圖的上下文或指示 – EdChum

回答

0

@EdChum statet:

用戶可能希望該列從主DF分開,當然,如果用戶只是想刪除該列然後取副本,如果他們的意圖毫無意義是刪除列,但是例如他們沒有獲取副本,而是採取了引用,那麼對該列的操作可能會或可能不會影響原始df,如果您沒有刪除它。