2013-11-26 58 views

回答

64

使用drop方法:

df.drop(column_name, axis=1) 
+1

axis = 1是什麼意思? – uniquegino

+5

@uniquegino它指示函數在查找要刪除的實體時搜索列空間。如果'axis = 0',它會搜索行空間 –

+0

@BrianVanover謝謝Brian! – uniquegino

13

你可以選擇不刪除或刪除你想要的列:

collist = ['col1', 'col2', 'col3'] 
df1 = df[collist] 

只需通過列的列表,你的願望

可以也檢索列的列表,然後從該列表中選擇

collist = df.columns.tolist() 
# you can now select from this list any arbritrary range 
df1 = df[collist[0:1]] 
# or remove a column 
collist.remove('col2') 
# now select 
df1 = df[collist] 
# df1 will now only have 'col1' and 'col3' 
+0

注意:問題在於「除一個之外的所有」列不用於選擇一列。 –

+0

@YuShen我的答案顯示如何選擇一個arbritrary列列表,它沒有顯示如何選擇一個列。 – EdChum

+0

@ EdChum似乎已經沉澱下來了這一個。 –

2

你可以使用numpy的建立一個面具:

import numpy as np 
columns = df.columns 
mask = np.ones(columns.shape, dtype=bool) 
i = 4 #The specified column that you don't want to show 
mask[i] = 0 
df[columns[mask]] 
26
df.ix[:, df.columns != col] 

其中col是列名離開了。

-1
df[ df.columns[df.columns!='not_this_column'] ] 
0

只是作爲一個選項,可以選擇所有列,但使用列表理解和df.loc方法一個(或多個):

select = [x for x in df.columns if x != "column_you_don't_want"] 
df.loc[:, select] 

如果你要離開了超過一個列可以試試這個:

columns_dont_want = ["col1", "col2"] 
select = [x for x in df.columns if x not in columns_dont_want] 
df.loc[:, select] 
+0

不要那樣做。做這個'df.loc [:,〜df.columns.isin([「col1」,「col2」])]''。即使如此,只需使用''「col1」,「col2」]'列表中的'drop'。 – josh

相關問題