Zoeken…


.Iloc gebruiken

.iloc gebruikt gehele getallen om gegevens naar een DataFrame te lezen en te schrijven.

Laten we eerst een DataFrame maken:

df = pd.DataFrame({'one': [1, 2, 3, 4, 5],
                   'two': [6, 7, 8, 9, 10],
              }, index=['a', 'b', 'c', 'd', 'e'])

Dit DataFrame ziet eruit als:

   one  two
a    1    6
b    2    7
c    3    8
d    4    9
e    5   10

Nu kunnen we .iloc gebruiken om waarden te lezen en te schrijven. Laten we de eerste rij, eerste kolom lezen:

print df.iloc[0, 0]

Dit wordt afgedrukt:

1

We kunnen ook waarden instellen. Laten we de tweede kolom, tweede rij op iets nieuws zetten:

df.iloc[1, 1] = '21'

En kijk dan eens wat er is gebeurd:

print df 

   one two
a    1   6
b    2  21
c    3   8
d    4   9
e    5  10

.Loc gebruiken

.loc gebruikt labels om gegevens te lezen en te schrijven.

Laten we een DataFrame instellen:

df = pd.DataFrame({'one': [1, 2, 3, 4, 5],
                   'two': [6, 7, 8, 9, 10],
                  }, index=['a', 'b', 'c', 'd', 'e'])

Vervolgens kunnen we het DataFrame afdrukken om de vorm te bekijken:

print df 

Dit wordt uitgevoerd

   one  two
a    1    6
b    2    7
c    3    8
d    4    9
e    5   10

We gebruiken de kolom- en rijlabels om toegang te krijgen tot gegevens met .loc. Laten we rij 'c', kolom 'twee' instellen op de waarde 33:

df.loc['c', 'two'] = 33 

Dit is hoe het DataFrame er nu uitziet:

   one  two
a    1    6
b    2    7
c    3   33
d    4    9
e    5   10

Merk op dat het gebruik van df['two'].loc['c'] = 33 mogelijk geen waarschuwing meldt, en mogelijk zelfs werkt, maar het gebruik van df.loc['c', 'two'] werkt gegarandeerd correct , terwijl de eerste niet is.

We kunnen bijvoorbeeld stukjes data lezen

print df.loc['a':'c'] 

drukt rijen a tot c af. Dit is inclusief.

   one  two
a    1    6
b    2    7
c    3    8

En ten slotte kunnen we beide samen doen:

print df.loc['b':'d', 'two']

Zal rijen b t / m c van kolom 'twee' uitvoeren. Merk op dat het kolomlabel niet wordt afgedrukt.

b    7
c    8
d    9

Als .loc wordt geleverd met een geheel getalargument dat geen label is, keert het terug naar gehele indexering van assen (het gedrag van .iloc). Dit maakt gemengde labels en gehele getallen mogelijk:

df.loc['b', 1]

retourneert de waarde in de 2e kolom (index beginnend bij 0) in rij 'b':

7


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow