Få Pandas DataFrame -radene basert på indeks

Få Pandas DataFrame -radene basert på indeks

I utgangspunktet har en Pandas dataaframe to indekser. Disse indeksene kjennetegnes ved deres akse. Radindeksen er en indeks som ligger langs Axis 0 (horisontalt), mens kolonneindeksen er en indeks som ligger langs Axis 1 (vertikal).

I denne artikkelen vil vi bruke ILOC [] og LOC [] -funksjoner for å få radene fra DataFrame. Vi må spesifisere rad- og kolonnedelene (start- og sluttsteder langs kolonnene eller radene). Den stedsbaserte indekseringen kan brukes til å spørre Pandas dataframes.

Syntaks - iloc []

Pandas.DataFrame_Object.iloc []

Parameter

Indeksposisjon: Indeksnummer på rader (numerisk) eller liste over heltall.

Merk: Hvis indeksen ikke presenterer i DataFrame, Indekserror - “Utenfor grenser” vil bli kastet.

Eksempel - Hent spesifikk rad

Lage pandas dataaframe som heter - faktisk_Details med 5 rader og 2 kolonner - 'klasse', 'syllabus_date' og 'timer'.

Bruk nå ILOC [] -funksjonen til:

  1. Returner raden som er til stede på indeks-2
  2. Returner raden som er til stede på indeks-0
  3. Returner raden til stede på indeks-4
Importer pandaer
# Lag datarammen som har 5 rader med 2 kolonner
faktisk_Details = Pandas.DataFrame ('Class': ['Open Source', 'Linux', 'Algorithms', 'Botany', 'Social Studies'],
'Timer': [12,8,9,12,12])
trykk (faktisk_Details.iloc [2])
skrive ut()
trykk (faktisk_Details.iloc [0])
skrive ut()
trykk (faktisk_Details.iloc [4])

Produksjon

klassealgoritmer
Timer 9
Navn: 2, dtype: objekt
Klasse åpen kildekode
Timer 12
Navn: 0, dtype: objekt
Klasse samfunnsfag
Timer 12
Navn: 4, dtype: objekt

Forklaring

  1. Hos Index-2 er 'klassen' 'algoritmer', og 'timer' er '9'.
  2. Hos Index-0 er 'klassen' 'open source', og 'timer' er '12'.
  3. Hos Index-4 er 'klassen' 'samfunnsfag', og 'timer' er '12'.

Scenario 1 - Hent flere rader

Det kan være mulig å hente flere rader samtidig ved å bruke ILOC []. Vi må sende radindeksene i en liste til ILOC [].

Syntaks

Pandas.DataFrame_Object.iloc [[index1, index2,…]]

Eksempel

Lage pandas dataaframe som heter - faktisk_Details med 5 rader og 2 kolonner - 'klasse', 'syllabus_date' og 'timer'.

Bruk nå ILOC [] for å returnere radene som er til stede på indeks-2,0 og 4.

Importer pandaer
# Lag DataFrame som har 5 rader med 2 kolonner
faktisk_Details = Pandas.DataFrame ('Class': ['Open Source', 'Linux', 'Algorithms', 'Botany', 'Social Studies'],
'Timer': [12,8,9,12,12])
# Hent radindekser 2,0 og 4
trykk (faktisk_Details.iloc [[2,0,4]])

Produksjon

Klassetimer
2 algoritmer 9
0 open source 12
4 Social Studies 12

Scenario 2 - Hent flere rader med spesifikke kolonner

Noen ganger ønsker vi å hente dataene bare for spesifikke kolonner i stedet for å hente radene med dataene med alle kolonnene i den gitte DataFrame. I likhet med radindekser i en Pandas dataaframe, fungerer kolonneposisjonen også som en kolonneindeks.

Syntaks

Pandas.DataFrame_Object.ILOC [[Index1, Index2, .. .]]

Eksempel

Lag Pandas DataFrame NAM-D - faktisk_Details med 5 rader og 2 colum -s - 'klasse', 'syllabus_date' og 'timer'.

Bruk nå ILOC [] -funksjonen for å returnere radene som er til stede på Index-2,0 og 4 for kolonneklasse og timer separat.

Importer pandaer
# Lag DataFrame som har 5 rader med 2 kolonner
faktisk_Details = Pandas.Datafram '(' Cl'ss '' ['Open Sou'c ",' Li'u", 'Algorit'm ",' Bot'n", 'Social Stud'es'],
'' Ho'rs ': [12,8,9,12,12])
# Hent radindekser 2,0 og 4 for klassekolonne
trykk (faktisk_Details.iloc [[2,0,4], [0]])
skrive ut()
# Hent radindekser 2,0 og 4 i timevis kolonne
trykk (faktisk_Details.iloc [[2,0,4], [1]])

Produksjon

klasse
4 2 Algorith open source
4 Social Studies
Timer
4 2 12
4 12

Forklaring

Du kan se at radene bare ble returnert for en bestemt kolonne. Her representerer klasse indeks-0 og timer representerer indeks-1.

I likhet med ILOC [] -funksjonen, kan vi spesifisere områdene eller flere etiketter som en liste inne i LOC [] -funksjonen for å hente flere rader.

Synt -X - loc []

Pandas.DataFrame_Object.loc []

Parameter

Indeks: Indeksetikett med rader eller liste over etiketter.

Eksempel -1 - Hent spesifikk rad

Lag Pandas DataFrame NAM-D - faktisk_Details med 5 rader og 2 colum -s - 'klasse', 'syllabus_date' og 'timer' sammen med indekser som ['C1', 'C2', 'C3', 'C4', 'C5'].

Bruk nå ILOC [] -funksjonen til:

  1. Returner raden som er til stede på 'C3'
  2. Returner raden som er til stede på 'C1'
  3. Returner raden som er til stede på 'C5'
Importer pandaer
# Lag DataFrame som har 5 rader med 2 kolonner
faktisk_Details = Pandas.DataFrame ('Class': ['Open Source', 'Linux', 'Algorithms', 'Botany', 'Social Studies'],
'Timer': [12,8,9,12,12], indeks = ['C1', 'C2', 'C3', 'C4', 'C5'])
# Hent radindekser - 'C3', 'C1' og 'C5' hver for seg
trykk (faktisk_Details.loc ['C3'])
skrive ut()
trykk (faktisk_Details.loc ['C1'])
skrive ut()
trykk (faktisk_Details.loc ['C5'])

Produksjon

klassealgoritmer
Timer 9
Navn: C3, dtype: objekt
Klasse åpen kildekode
Timer 12
Navn: C1, dtype: objekt
Klasse samfunnsfag
Timer 12
Navn: C5, dtype: objekt

Forklaring

  1. Hos Index-'c3 'er klassen' algoritmer ', og' timer er 9.
  2. Hos Index-'c1 'er klassen' open source ', og' timer 'er 12.
  3. Hos Index-'c5 'er klassen' samfunnsfag ', og' timer 'er 12.

Eksempel 2 - Hent flere rader

Lage pandas dataaframe som heter - faktisk_Details med 5 rader og 2 kolonner - 'klasse', 'syllabus_date' og 'timer' sammen med indekser som ['C1', 'C2', 'C3', 'C4', 'C5'].

Bruk nå ILOC [] -funksjonen for å returnere raden som er til stede på 'C3', 'C1' og 'C5'.

Importer pandaer
# Lag DataFrame som har 5 rader med 2 kolonner
faktisk_Details = Pandas.DataFrame ('Class': ['Open Source', 'Linux', 'Algorithms', 'Botany', 'Social Studies'],
'Timer': [12,8,9,12,12], indeks = ['C1', 'C2', 'C3', 'C4', 'C5'])
# Hent radindekser - 'C3', 'C1' og 'C5' om gangen
trykk (faktisk_Details.Loc [['C3', 'C1', 'C5']))

Produksjon

Klassetimer
C3 -algoritmer 9
C1 åpen kildekode 12
C5 Social Studies 12

Eksempel 3 - Hent flere rader med spesifikk kolonne

Lage pandas dataaframe som heter - faktisk_Details med 5 rader og 2 kolonner - 'klasse', 'syllabus_date' og 'timer' sammen med indekser som ['C1', 'C2', 'C3', 'C4', 'C5'].

Bruk nå ILOC [] -funksjonen for å returnere raden som er til stede på 'C3', 'C1' og 'C5' bare for 'Class' -kolonnen.

Importer pandaer
# Lag datarammen som har 5 rader med 2 kolonner
faktisk_Details = Pandas.DataFrame ('Class': ['Open Source', 'Linux', 'Algorithms', 'Botany', 'Social Studies'],
'Timer': [12,8,9,12,12], indeks = ['C1', 'C2', 'C3', 'C4', 'C5'])
# Hent radindekser - 'C3', 'C1' og 'C5' om gangen for klassekolonnen
trykk (faktisk_Details.loc [['C3', 'C1', 'C5'], ['Class']])

Produksjon:

klasse
C3 -algoritmer
C1 åpen kildekode
C5 Social Studies

Forklaring

Du kan se at radene bare ble returnert for en bestemt kolonne, i.e., klasse.

Konklusjon

I denne artikkelen diskuterte vi hvordan du får DataFrame -radene ved å bruke indeksen i Pandas. Etter å ha gått gjennom denne artikkelen, kan det hende du kan hente DataFrame -radene ved å bruke de forskjellige funksjonene. Vi implementerte noen få eksempler for å lære deg hvordan du bruker ILOC [] -funksjonen for å hente enkelt- eller flere rader fra DataFrame med den numeriske indeksen og LOC [] -funksjonen for å få enkelt- eller flere rader fra DataFrame med ikke-numerisk indeks.