我不知道您所说的低效率是什么意思,但是如果您指的是打字,那么选择感兴趣的cols并分配回df会更容易:
df = df[cols_of_interest]
cols_of_interest您关心的列的列表在哪里。
或者,您可以切片列并将其传递给
drop:
df.drop(df.ix[:,'Unnamed: 24':'Unnamed: 60'].head(0).columns, axis=1)
调用
head只会选择0行,因为我们只对列名而不是数据感兴趣
更新
另一种方法:使用from中的布尔掩码
str.contains并将其反转以掩码列会更简单:
In [2]:df = pd.Dataframe(columns=['a','Unnamed: 1', 'Unnamed: 1','foo'])dfOut[2]:Empty DataframeColumns: [a, Unnamed: 1, Unnamed: 1, foo]Index: []In [4]:~df.columns.str.contains('Unnamed:')Out[4]:array([ True, False, False, True], dtype=bool)In [5]:df[df.columns[~df.columns.str.contains('Unnamed:')]]Out[5]:Empty DataframeColumns: [a, foo]Index: []


