2016-09-07 55 views
0

我不得不放弃一些列,有时列名是哈特类型,所以我想获得一个列表或元组或数组与对应的序列号,然后我可以放下它们与df1.drop(df1.columns[[0, 1, 3]], axis=1)用熊猫获得相应序列号的快速方法是什么?

熊猫这样做的快速方式是什么?

In [2]: df1.columns 
Out[2]: Index(['Unnamed: 0', 'Unnamed: 1', 'Unnamed: 2', 'Unnamed: 3', '上班', '下班', 
     '上班.1', '下班.1', 'Unnamed: 8', 'Unnamed: 9', 'Unnamed: 10', 
     'Unnamed: 11'], 
     dtype='object' 
In [3]: a = df1.columns.tolist() 
     b = list(range(len(df1.columns))) 
     tuple(zip(a, b)) 
Out[3]: (('Unnamed: 0', 0), 
     ('Unnamed: 1', 1), 
     ('Unnamed: 2', 2), 
     ('Unnamed: 3', 3), 
     ('上班', 4), 
     ('下班', 5), 
     ('上班.1', 6), 
     ('下班.1', 7), 
     ('Unnamed: 8', 8), 
     ('Unnamed: 9', 9), 
     ('Unnamed: 10', 10), 
     ('Unnamed: 11', 11)) 
In [4]: df1.drop(df1.columns[6:], axis=1) 
+0

感谢。它返回'AttributeError:'列表'对象没有属性'枚举',Shoud我做这个列表(列举(df1.columns.tolist()))? –

+0

对不起,这是我的错误。我无法编辑以前的帖子,所以我删除了它。 '枚举'实际上是一个内置函数,而不是列表对象的一种方法。参见[这里](https://docs.python.org/2/library/functions.html#enumerate)。 – vmg

+0

好的,谢谢!:) –

回答

0

最后,我发现了一个办法做到这一点快速简便:

for i, element in enumerate(df.columns): 
    print(i, element) 
相关问题