2016-09-26 56 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,如果您没有删除它。