2017-04-12 100 views
0

我不确定如何解释该问题,因此只需查看简单代码即可。在不删除python中的原始数据的情况下删除DataFrame的列

import numpy as np 
import pandas as pd 

x = pd.DataFrame({"A": [1, 2], "B": [3, 4]}) 
y = x 
del y ["A"] 
print(x) 
print(y) 

输出

B 
0 3 
1 4 
    B 
0 3 
1 4 

正如你所看到的,从删除y的X太删除其列,有没有什么办法删除从y中的列而不删除它在X吗?

回答

3

在您的示例中,xy都引用相同的基础对象。如果你想的x副本,您可以使用:

y = x.copy() 

例子:

x = pd.DataFrame({"A": [1, 2], "B": [3, 4]}) 
y = x.copy() 
del y["A"] 
print(x) 
print('-'*6) 
print(y) 

# returns: 
    A B 
0 1 3 
1 2 4 
------ 
    B 
0 3 
1 4 
+0

可悲的是,这是行不通的,它返回: 回溯(最近通话最后一个): 文件“***”,第7行,在 del b [“A”] TypeError:'method'对象不支持项目删除 – Ryunaq

+0

在您的示例中,@Ryunaq它的作品。也许你应该更新你的例子。 –

+0

请看帖子更新 – James

相关问题