在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。也许你应该更新你的例子。是的,成功了,我忘了在上面加括号。复制,我的错,谢谢!