2016-09-07 47 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) 
相關問題