J'ai fait quelques recherches pour trouver la réponse à cette question, mais tout ce que je peux comprendre, c'est ceci:
df[df.columns[len(df.columns)-1]]
ce qui me semble maladroit, et non pythonique (et lent?).
Quel est le moyen le plus simple de sélectionner les données de la dernière colonne d'un cadre de données pandas sans spécifier le nom de la colonne?
Utilisez iloc et sélectionnez toutes les lignes (:
) par rapport à la dernière colonne (-1
):
df.iloc[:,-1]
Un peu similaire à votre tentative initiale, mais plus basé sur Pythonic, consiste à utiliser la convention standard d'indexation négative de Python pour compter à rebours à partir de la fin:
df[df.columns[-1]]
df.T.iloc[-1]
df.T.tail(1)
pd.Series(df.values[:, -1], name=df.columns[-1])
La question qui se pose est la suivante: comment sélectionner la dernière colonne d’un cadre de données? Appart @piRSquared, aucun n’a répondu à la question.
le moyen le plus simple d'obtenir un cadre de données avec la dernière colonne est:
df.iloc[ :, -1:]
C'est une autre façon de le faire. Je pense peut-être un peu plus général:
df.ix[:,-1]
Voici quelques éléments qui vous aideront à tout comprendre ... en utilisant iloc
Dans iloc, [ligne initiale: ligne d'arrivée, colonne initiale: colonne d'arrivée]
cas 1: si vous ne voulez que la dernière colonne --- df.iloc[:,-1] & df.iloc[:,-1:]
.__, cela signifie que vous ne voulez que la dernière colonne ...
cas 2: si vous voulez toutes les colonnes et toutes les lignes sauf la dernière colonne --- df.iloc[:,:-1]
.__, cela signifie que vous voulez toutes les colonnes et toutes les lignes sauf la dernière colonne ...
cas 3: si vous ne voulez que la dernière ligne --- df.iloc[-1:,:] & df.iloc[-1,:]
.__, cela signifie que vous ne voulez que la dernière colonne ...
cas 4: si vous voulez toutes les colonnes et toutes les lignes sauf la dernière, --- df.iloc[:-1,:]
.__, cela signifie que vous voulez toutes les colonnes et toutes les lignes sauf la dernière colonne ...
cas 5: si vous voulez toutes les colonnes et toutes les lignes sauf la dernière ligne et la dernière colonne --- df.iloc[:-1,:-1]
cela signifie que vous voulez toutes les colonnes et toutes les lignes sauf la dernière colonne et la dernière ligne ...