2016-10-20 6 views
22

ich auf diese Frage einige der Suche nach der Antwort getan haben, aber alles, was ich herausfinden kann, ist dies:Wie die letzte Spalte von Datenrahmen wählen

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

mir die unweildy scheint, und un-pythonic (und langsam?).

Was ist der einfachste Weg, um die Daten für die letzte Spalte in einem Pandas-Dataframe auszuwählen, ohne den Namen der Spalte anzugeben?

Antwort

37

Verwenden ILoc und wählen Sie alle Zeilen (:) gegen die letzten Säule (-1):

df.iloc[:,-1] 
5

Etwas ähnlich zu Ihrem ursprünglichen Versuch, aber mehr Pythonic ist Pythons Standard-Negativ-Indizierung Konvention zu verwenden rückwärts vom Ende zu zählen:

df[df.columns[-1]] 
2
df.T.iloc[-1] 

df.T.tail(1) 

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

Ich sehe keinen Wert der Serie im Vergleich aus dem numpy Werte Extraktion explizit den Aufbau einer direkten Aufruf – Boud

+0

iLOC @ Boud, Es gibt viele Möglichkeiten, dies zu tun. Ich habe einfach versucht, einen Haufen abzuwerfen. Zugegeben, die dritte Option ist die schwächste. – piRSquared

1

Dies ist ein weiterer Weg, es zu tun. Ich denke, vielleicht ein wenig allgemein:

df.ix[:,-1] 
+0

In diesem Fall wird Ihre Antwort nicht empfohlen, da die Frage explizit nach der * last * -Spalte fragt, die auf dem Index basiert. 'ix' mischt Label und Index Location Accessor. Weitere Informationen finden Sie [hier] (http://stackoverflow.com/questions/31593201/pandas-iloc-vs-ix-vs-loc-explanation). – pansen

1

Die Frage ist: Wie kann die letzte Spalte einer Datenrahmen wählen? Appart @piRSquared, keine Antwort auf die Frage.

der einfachste Weg, einen Datenrahmen mit der letzten Spalte zu bekommen ist:

df.iloc[ :, -1:] 
Verwandte Themen