2016-12-21 2 views
5

Ich nehme eine Online-Klasse, um Python zu lernen, und der Lehrer hat uns beigebracht, dass die Kettenindizierung keine gute Idee ist. Er wusste jedoch nicht, ist die geeignete Alternative zu verwenden.Was ist die Alternative zur Pandas-Kettenindexierung?

Angenommen, ich habe einen Pandas-Datenrahmen mit Zeilen indiziert als ['1', '2', '3'] und Spalten mit Namen ['a', 'b', 'c'].

Was ist die geeignete Alternative zur Verwendung des Befehls df['1']['a'], um den in der ersten Zeile und ersten Spalte gefundenen Wert zu extrahieren?

+0

Bitte lesen Sie die [Dokumente] (http://pandas.pydata.org/pandas-docs/stable/indexing.html) – EdChum

Antwort

6

Verwenden Sie multi-axis indexing, z.B.

df.loc['a', '1'] 

Wenn Sie df['1']['a'] verwenden, zugreifen Sie zuerst die Objekt-Serie s = df['1'] und dann das Serienelement Zugriff auf s['a'], in zwei __getitem__ Anrufe führt, die beide stark überlastet sind (viele Szenarien behandeln, wie Slicing , Boolean Mask Indizierung, und so weiter).

Es ist viel effizienter, den df.loc Indexer zu verwenden.

Verwandte Themen