113 votes

Comment sélectionner la dernière colonne d'un cadre de données ?

J'ai fait quelques recherches pour trouver la réponse à cette question, mais tout ce que je peux trouver, c'est ceci :

df[df.columns[len(df.columns)-1]]

ce qui me semble peu délicat, et peu pythonique (et lent ?).

Quel est le moyen le plus simple de sélectionner les données de la dernière colonne d'un dataframe pandas sans spécifier le nom de la colonne ?

211voto

Boud Points 3941

Utilisez iloc et sélectionnez toutes les lignes ( : ) contre la dernière colonne ( -1 ):

df.iloc[:,-1:]

6 votes

J'ai essayé de le faire et j'ai eu une erreur disant "trop d'indexeurs".

1 votes

@user287474 cela se produira si vous opérez sur une Series - assurez-vous que vous utilisez un DataFrame

50voto

jez Points 7252

Un peu similaire à votre tentative initiale, mais plus pythonique, consiste à utiliser la convention d'indexation négative standard de Python pour compter à rebours depuis la fin :

df[df.columns[-1]]

0 votes

Est-ce que ça va marcher ? df[df.columns[-1] >= 10] cela me donne "non supporté entre les instances de 'str' et 'int'".

0 votes

@Mike_Leigh votre comparaison ne devrait pas se faire à l'intérieur du crochet.

7voto

alEx Points 71

La question est : comment sélectionner la dernière colonne d'un dataframe ? A part @piRSquared, aucune réponse à la question.

la façon la plus simple d'obtenir un dataframe avec la dernière colonne est :

df.iloc[ :, -1:]

3voto

piRSquared Points 159
df.T.iloc[-1]

df.T.tail(1)

pd.Series(df.values[:, -1], name=df.columns[-1])

1 votes

Je ne vois pas l'intérêt de construire explicitement la série à partir de l'extraction des valeurs numpy par rapport à un appel direct à iloc.

0 votes

@Boud, Il y a plusieurs façons de faire cela. J'essayais simplement d'en déverser un paquet. Certes, la troisième option est la plus faible.

1voto

user28929304981 Points 21

Voici une autre façon de procéder. Je pense que c'est un peu plus général :

df.ix[:,-1]

1 votes

Dans ce cas, votre réponse n'est pas recommandée car la question demande explicitement le dernier qui est basée sur l'emplacement de l'index. ix mélange l'accesseur d'étiquette et d'emplacement d'index. Voir aquí pour plus.

4 votes

En effet, en plus, ix est désormais obsolète.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X