Hoe rijen op index te selecteren in een pandas dataframe


Vaak wilt u misschien rijen in een Panda’s DataFrame selecteren op basis van hun indexwaarde.

Als u rijen wilt selecteren op basis van indexering van gehele getallen, kunt u de functie .iloc gebruiken.

Als u rijen wilt selecteren op basis van labelindexering, kunt u de .loc- functie gebruiken.

Deze tutorial geeft een voorbeeld van hoe u elk van deze functies in de praktijk kunt gebruiken.

Voorbeeld 1: Selecteer rijen op basis van gehele indexering

De volgende code laat zien hoe u een Panda’s DataFrame maakt en .iloc gebruikt om de rij met een gehele indexwaarde van 4 te selecteren:

 import pandas as pd
import numpy as np

#make this example reproducible
n.p. random . seeds (0)

#createDataFrame
df = pd. DataFrame ( np.random.rand (6,2),index=range(0,18,3),columns=[' A ' ,' B '])

#view DataFrame
df

	       A B
0 0.548814 0.715189
3 0.602763 0.544883
6 0.423655 0.645894
9 0.437587 0.891773
12 0.963663 0.383442
15 0.791725 0.528895

#select the 5th row of the DataFrame
df. iloc [[4]]

	       A B
12 0.963663 0.383442

We kunnen een vergelijkbare syntaxis gebruiken om meerdere rijen te selecteren:

 #select the 3rd, 4th, and 5th rows of the DataFrame
df. iloc [[2, 3, 4]]

	       A B
6 0.423655 0.645894
9 0.437587 0.891773
12 0.963663 0.383442

Of we kunnen alle rijen in een bereik selecteren:

 #select the 3rd, 4th, and 5th rows of the DataFrame
df. iloc [2:5]

	       A B
6 0.423655 0.645894
9 0.437587 0.891773
12 0.963663 0.383442

Voorbeeld 2: Selecteer rijen op basis van labelindexering

De volgende code laat zien hoe u een Panda DataFrame maakt en .loc gebruikt om de rij met een indexlabel van 3 te selecteren:

 import pandas as pd
import numpy as np

#make this example reproducible
n.p. random . seeds (0)

#createDataFrame
df = pd. DataFrame ( np.random.rand (6,2),index=range(0,18,3),columns=[' A ' ,' B '])

#view DataFrame
df

	       A B
0 0.548814 0.715189
3 0.602763 0.544883
6 0.423655 0.645894
9 0.437587 0.891773
12 0.963663 0.383442
15 0.791725 0.528895

#select the row with index label '3'
df. loc [[3]]

               A B
3 0.602763 0.544883

We kunnen een vergelijkbare syntaxis gebruiken om meerdere rijen met verschillende indexlabels te selecteren:

 #select the rows with index labels '3', '6', and '9'
df. loc [[3, 6, 9]]

	       A B
3 0.602763 0.544883
6 0.423655 0.645894
9 0.437587 0.891773

Het verschil tussen .iloc en .loc

De bovenstaande voorbeelden illustreren het subtiele verschil tussen .iloc en .loc :

  • .iloc selecteert rijen op basis van een gehele index . Als u dus de vijfde rij van een DataFrame wilt selecteren, gebruikt u df.iloc[[4]] omdat de eerste rij op index 0 staat, de tweede rij op index 1, enzovoort.
  • .loc selecteert rijen op basis van een gelabelde index . Dus als u de rij met een indexlabel van 5 wilt selecteren, gebruikt u direct df.loc[[5]].

Aanvullende bronnen

Hoe rijnummers in een Pandas DataFrame te krijgen
Hoe rijen met NaN-waarden in Panda’s te verwijderen
Hoe de indexkolom in Pandas te verwijderen

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert