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


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow