2013-05-17 54 views
20

說我有一個數據表刪除所有列,除了少數中的python-大熊貓

1 2 3 4 5 6 .. n 
A x x x x x x .. x 
B x x x x x x .. x 
C x x x x x x .. x 

我想苗條下來,這樣我只有,比如說,刪除所有其他和維護第3和5結構體。我怎麼能用熊貓做到這一點?我想我明白如何刪除單個列,但我不知道如何保存選定的幾個並刪除所有其他列。

謝謝。

回答

32

如果你有列的列表,你可以只選擇那些:

In [11]: df 
Out[11]: 
    1 2 3 4 5 6 
A x x x x x x 
B x x x x x x 
C x x x x x x 

In [12]: col_list = [3, 5] 

In [13]: df = df[col_list] 

In [14]: df 
Out[14]: 
    3 5 
A x x 
B x x 
C x x 
+0

那完美。謝謝! – Matt

+0

@andyhayden如何刪除第n列(不使用列命名)以外的所有列, – 3kstc

6

你可以重新分配一個新的價值,您的DataFramedf

df = df.loc[:,[3, 5]] 

只要有原來的DataFrame沒有其他的引用,老DataFrame會得到垃圾收集。

請注意,當使用df.loc時,索引由標籤指定。因此,上面的35不是序號,它們表示列的標籤名稱。如果您希望通過序號索引指定列,請使用df.iloc