2017-04-12 14 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からそれを削除し、あまりにもX上でそれを削除せずにYから列を削除する方法はありますか?

答えて

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: 'メソッド'オブジェクトはアイテムの削除をサポートしていません – Ryunaq

+0

あなたの例では、@ Ryanqは動作します。おそらくあなたの例を更新する必要があります。 –

+0

投稿への更新を参照してください – James

関連する問題