web-dev-qa-db-fra.com

Obtenir les valeurs d'index de ligne de Pandas DataFrame sous forme de liste?

J'utilise probablement des termes de recherche médiocres lorsque j'essaie de trouver cette réponse. Pour le moment, avant d'indexer un DataFrame, j'obtiens une liste de valeurs dans une colonne de cette façon ...

 list = list(df['column']) 

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

Comment puis-je récupérer les valeurs dans un index (simple et multiple) et les mettre dans une liste ou une liste de n-uplets?

47
TravisVOX

Pour obtenir les valeurs index en tant que list/list de Tuples pour Index/MultiIndex, procédez comme suit:

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
95
Phillip Cloud

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

Il est très rare dans les pandas que vous ayez besoin d'un index sous forme de liste Python (à moins que vous ne fassiez quelque chose d'assez funky ou que vous le renvoyiez à NumPy), donc si vous le faites souvent, c'est une odeur de code qui vous faites quelque chose de mal.

0
smci