2017-04-12 84 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

相關問題