pandas
Verwenden Sie .ix, .iloc, .loc, .at und .iat, um auf einen DataFrame zuzugreifen
Suche…
Verwenden von .iloc
.iloc verwendet Ganzzahlen, um Daten in einen DataFrame zu lesen und zu schreiben.
Zuerst erstellen wir einen DataFrame:
df = pd.DataFrame({'one': [1, 2, 3, 4, 5],
'two': [6, 7, 8, 9, 10],
}, index=['a', 'b', 'c', 'd', 'e'])
Dieser DataFrame sieht folgendermaßen aus:
one two
a 1 6
b 2 7
c 3 8
d 4 9
e 5 10
Jetzt können wir .iloc zum Lesen und Schreiben von Werten verwenden. Lesen wir die erste Zeile und die erste Spalte:
print df.iloc[0, 0]
Dies wird ausgedruckt:
1
Wir können auch Werte setzen. Setzen wir die zweite Spalte, die zweite Zeile auf etwas Neues:
df.iloc[1, 1] = '21'
Und dann schauen Sie mal, was passiert ist:
print df
one two
a 1 6
b 2 21
c 3 8
d 4 9
e 5 10
Verwendung von .loc
.loc verwendet Etiketten zum Lesen und Schreiben von Daten.
Lassen Sie uns einen DataFrame einrichten:
df = pd.DataFrame({'one': [1, 2, 3, 4, 5],
'two': [6, 7, 8, 9, 10],
}, index=['a', 'b', 'c', 'd', 'e'])
Dann können wir den DataFrame ausdrucken, um einen Blick auf die Form zu werfen:
print df
Dies wird ausgegeben
one two
a 1 6
b 2 7
c 3 8
d 4 9
e 5 10
Wir verwenden die Spalten- und Zeilenbeschriftungen , um mit .loc auf Daten zuzugreifen. Setzen wir die Zeile 'c', Spalte 'zwei' auf den Wert 33:
df.loc['c', 'two'] = 33
So sieht der DataFrame jetzt aus:
one two
a 1 6
b 2 7
c 3 33
d 4 9
e 5 10
Die Verwendung von df['two'].loc['c'] = 33
meldet möglicherweise keine Warnung und kann sogar funktionieren. Die Verwendung von df.loc['c', 'two']
funktioniert jedoch garantiert korrekt , während der erstere nicht ist.
Wir können zum Beispiel Datenscheiben lesen
print df.loc['a':'c']
druckt die Zeilen a bis c. Dies ist inklusive.
one two
a 1 6
b 2 7
c 3 8
Und schließlich können wir beides zusammen machen:
print df.loc['b':'d', 'two']
Gibt die Zeilen b bis c der Spalte 'zwei' aus. Beachten Sie, dass das Spaltenetikett nicht gedruckt wird.
b 7
c 8
d 9
Wenn für .loc ein Integer-Argument angegeben wird, das keine Beschriftung ist, kehrt es zur Integer-Indexierung von Achsen zurück (Verhalten von .iloc). Dies ermöglicht die Indizierung von gemischten Beschriftungen und Ganzzahlen:
df.loc['b', 1]
gibt den Wert in der zweiten Spalte (Index beginnend bei 0) in Zeile 'b' zurück:
7