在python中删除数据帧的列而不删除原始列

在python中删除数据帧的列而不删除原始列,python,pandas,numpy,dataframe,Python,Pandas,Numpy,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中删除它?在您的示例中,x和y都引用相同的基础对象。如果要复制x

我不知道如何解释这个问题,所以请看一下简单的代码

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中删除它?

在您的示例中,
x
y
都引用相同的基础对象。如果要复制
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

在您的示例中,
x
y
都引用相同的底层对象。如果要复制
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

遗憾的是,它不起作用,它返回:Traceback(最近一次调用last):文件“***”,第7行,在del b[“A”]TypeError中:“method”对象不支持项删除在您的示例中,@Ryunaq it works。也许你应该更新你的例子。是的,成功了,我忘了在上面加括号。复制,我的错,谢谢!遗憾的是,它不起作用,它返回:Traceback(最近一次调用last):文件“***”,第7行,在del b[“A”]TypeError中:“method”对象不支持项删除在您的示例中,@Ryunaq it works。也许你应该更新你的例子。是的,成功了,我忘了在上面加括号。复制,我的错,谢谢!