web-dev-qa-db-fra.com

Python Pandas: Comment obtenir les noms de lignes à partir de l'index d'un cadre de données?

Supposons donc que j'ai un cadre de données avec des noms de noms qui ne sont pas une colonne en soi, tels que:

        X  Y
 Row 1  0  5
 Row 2  8  1
 Row 3  3  0

Comment pourrais-je extraire ces noms de lignes sous forme de liste, si j'ai leur index? Par exemple, cela ressemblerait à quelque chose comme:

function_name(dataframe[indices])
> ['Row 1', 'Row 2']

Merci de votre aide!

55
linamnt

df.index

  • affiche les noms de ligne sous la forme pandas Index object.

list(df.index)

  • jette sur une liste.

df.index['Row 2':'Row 5']

  • prend en charge le découpage d'étiquettes similaire aux colonnes.
91
Adam Hughes

Si vous souhaitez extraire uniquement les valeurs d'index pour certains index de ligne basés sur des entiers, vous pouvez procéder comme suit en utilisant la méthode iloc:

In [28]: temp
Out[28]:
       index                 time  complete
row_0      2  2014-10-22 01:00:00         0
row_1      3  2014-10-23 14:00:00         0
row_2      4  2014-10-26 08:00:00         0
row_3      5  2014-10-26 10:00:00         0
row_4      6  2014-10-26 11:00:00         0

In [29]: temp.iloc[[0,1,4]].index
Out[29]: Index([u'row_0', u'row_1', u'row_4'], dtype='object')

In [30]: temp.iloc[[0,1,4]].index.tolist()
Out[30]: ['row_0', 'row_1', 'row_4']
5
K Raphael

cela semble bien fonctionner:

dataframe.axes[0].tolist()
5
Alex Kushkuley

si vous voulez obtenir les valeurs d'index, vous pouvez simplement faire:

dataframe.index

cela produira un pandas.core.index

3
hopla