Obtenir les valeurs d'index de ligne de Pandas DataFrame en tant que liste?

J'utilise probablement des termes de recherche pauvres en essayant de trouver cette réponse. En ce moment, avant d'indexer un DataFrame, je reçois une liste de valeurs dans une colonne de cette façon...

 list = list(df['column']) 

...ensuite, je vais set_index sur la colonne. Cela semble être une étape gaspillée. En essayant ce qui précède sur un index, j'obtiens une erreur de clé.

Comment puis-je récupérer les valeurs dans un index (simples et multiples) et les mettre dans une liste ou une liste de tuples?

37
demandé sur smci 2013-08-21 17:36:05

2 réponses

Pour obtenir le index valeurs list/list de tuples pour Index/MultiIndex faire:

df.index.values.tolist()  # an ndarray method, you probably shouldn't depend on this

Ou

list(df.index.values)  # this will always work in pandas
76
répondu Phillip Cloud 2013-08-21 14:29:34

Si vous les faites passer manuellement dans df.set_index(), c'est inutile. Juste faire directement df.set_index['your_col_name', drop=False], déjà.

Il est très rare chez les pandas que vous ayez besoin d'obtenir un index en tant que liste Python (à moins que vous ne fassiez quelque chose d'assez funky, ou bien que vous ne les renvoyiez à NumPy), donc si vous le faites beaucoup, c'est une odeur de code que vous faites quelque chose de mal.

0
répondu smci 2016-11-17 10:51:27