[PYTHON] Durchsuchen Sie .loc und .iloc gleichzeitig in pandas DataFrame

.ix ist veraltet

Es ist eine nützliche ".ix", wenn Sie Pandas DataFrames durchsuchen, aber wenn Sie es nicht verstehen, geraten Sie in eine Falle.

Angenommen, Sie haben den folgenden DataFrame.

from pandas import DataFrame

df = DataFrame(
    [['a0', 'b0'], ['a1', 'b1'], ['a2', 'b2']],
    index=[2, 4, 6],
    columns=['a', 'b'])
a b
2 a0 b0
4 a1 b1
6 a2 b2

Was ist, wenn Sie hier auf die "a-Spalte" der "zweiten Zeile" (ab 0) verweisen möchten? Das erwartete Ergebnis ist "a2". .ix akzeptiert sowohl die Reihenfolge als auch den Index. Wenn Sie sich also wie folgt darauf beziehen ...

df.ix[2, 'a']

Das Ergebnis ist "a0". Dies liegt daran, dass die Referenz, die mit einer Zahl in ".ix" angegeben ist, zum Index geht, wenn der Index vorhanden ist, und die Reihenfolge anzeigt, wenn sie nicht im Index vorhanden ist.

Diese Mehrdeutigkeit in der ".ix" -Referenz scheint in der Pandas-Version 0.20 veraltet zu sein.

Um gleichzeitig auf die Bestellung und den Indexnamen zu verweisen

Es ist vielleicht nicht die beste Lösung, aber ich werde versuchen, mit ".iloc" darauf zu verweisen. Da dies jedoch nur in der Reihenfolge referenziert werden kann, verwenden Sie pandas.Index.get_loc zusammen. Dies ist eine Methode, die nach Zeilennamen (oder Spaltennamen) sucht und die Reihenfolge zurückgibt.

df.iloc[2, df.columns.get_loc('a')]

Das erwartete Ergebnis "a2" wird jetzt zurückgegeben.

Im obigen Beispiel wird der Spaltenname angegeben. Wenn Sie jedoch den Zeilennamen angeben, gehen Sie wie folgt vor.

df.iloc[df.index.get_loc(6), 0]

Wenn Sie die Zeilen- und Spaltennamen im Voraus kennen, können Sie normalerweise ".loc" verwenden.

df.loc[6, 'a']

Ebenso ist .iloc in Ordnung, wenn Sie die Zeilen- und Spaltenreihenfolge im Voraus kennen.

df.iloc[2, 0]

Zusammenfassung

Wenn Sie das Verhalten von .ix nicht verstehen, wird es sich unbeabsichtigt verhalten. Selbst wenn Sie das Verhalten verstehen, müssen Sie den Inhalt des Index kennen, daher ist es besser, die Verwendung von ".ix" so weit wie möglich zu vermeiden.

Recommended Posts

Durchsuchen Sie .loc und .iloc gleichzeitig in pandas DataFrame
Schleifen Sie gleichzeitig Variablen in der Vorlage
Visualisieren Sie Daten und erfassen Sie gleichzeitig die Korrelation
Typkonvertierung mehrerer Spalten von Pandas DataFrame mit Astype gleichzeitig
Gibt es NaN im Pandas DataFrame?
Zeichnen Sie mit Pythons Matplotlib mehrere Karten und Daten gleichzeitig
Ich möchte gleichzeitig einen Musik-Player erstellen und Musik ablegen
Drehen Sie in Python mehrere Listen mit for-Anweisung gleichzeitig
Überprüfen Sie, ob die erwartete Spalte in Pandas DataFrame vorhanden ist
Ich habe die gleiche Datenanalyse mit kaggle notebook (python) und PowerBI gleichzeitig versucht ②
In Python integrierte Funktion ~ divmod ~ Lassen Sie uns gleichzeitig den Quotienten und den Rest der Division erhalten
Berechnen Sie den Zeitunterschied zwischen zwei Spalten mit Pandas DataFrame
[Pandas] Wenn sich die Daten der ersten Zeile im Header von DataFrame befinden
Kombinieren Sie Listen zu einem DataFrame mit Pandas
Ich habe versucht, die Zeit und die Zeit der C-Sprache zu veranschaulichen
[Python] Zeigt die verstrichene Zeit in Stunden, Minuten und Sekunden an (00:00:00)
Holen Sie sich das aktuelle Datum und die aktuelle Uhrzeit in Python unter Berücksichtigung des Zeitunterschieds
[Python] Stärken und Schwächen von DataFrame in Bezug auf den Zeitaufwand
Zeichnen Sie Zeitreihendaten in Python mit Pandas und Matplotlib
python Hinweis: enumerate () - Index und Element der Liste gleichzeitig abrufen und zur Anweisung wenden
Bestimmen Sie das Datums- und Uhrzeitformat mit Python und konvertieren Sie es in Unixtime
[Python 3.8 ~] Schreiben Sie Arrays usw. gleichzeitig mit der Definition neu [Tipps]
[Python3] Speichern Sie die Mittelwert- und Kovarianzmatrix in json mit Pandas
Überprüfen Sie die Komprimierungsrate und -zeit von PIXZ, die in der Praxis verwendet werden
So zeigen Sie Bytes in Java und Python auf die gleiche Weise an
Zählen Sie, wie oft zwei Werte gleichzeitig in einem Element vom Typ Python 3-Iterator angezeigt werden
Lesen von Standardeingabe- oder Variablendateien gleichzeitig wie der Befehl Einfügen in Python
# Zeile ignorieren und mit Pandas lesen
So ermitteln Sie mit Python den Unterschied zwischen Datum und Uhrzeit in Sekunden
Abrufen und Konvertieren der aktuellen Zeit in der lokalen Systemzeitzone mit Python
Holen Sie sich zu jeder Tageszeit eine Datums- / Uhrzeitinstanz in Python
Richten Sie einen Server ein, der mehrere Verbindungen gleichzeitig verarbeitet
[Python] So öffnen Sie zwei oder mehr Dateien gleichzeitig