Kaip indeksuoti pandas DataFrames
Python pandas DataFrames indeksavimas leidžia efektyviai ir tiesiogiai pasiekti duomenis. Tai palengvina konkrečių eilučių ir stulpelių atranką, supaprastindamas duomenų analizės užduotis.
Kas yra indeksavimas pandose?
Indeksavimas pandose reiškia įvairius metodus, kuriuos galite naudoti eilutėms ar stulpeliams atrinkti. Naudodami eilutės ir stulpelio žymes arba jų skaitmeninę padėtį duomenų rėmelio viduje, galite lengvai atrinkti elementus duomenų rėmelyje. Indeksas veikia kaip adresų sistema jūsų duomenims, padėdamas jums efektyviau rasti ir tvarkyti savo duomenis.
Kas yra pandos DataFrame.index?
Duomenų rėmo indeksų etiketes pandas galite peržiūrėti naudodami index atributą. Sintaksė atrodo taip:
DataFrame.indexpythonKokia yra pandas duomenų rėmelių indeksavimo sintaksė?
Yra keletas būdų indeksuoti pandas DataFrames, o sintaksė skiriasi priklausomai nuo operacijos, kurią norite atlikti.
Indeksavimas su žymėmis (stulpelių žymėmis)
Galite naudoti stulpelių pavadinimus, kad indeksuotumėte pandas DataFrames. Štai pavyzdys, kaip sukurti pavyzdinį DataFrame:
import pandas as pd
# Creating a sample DataFrame
data = {
'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35],
'City': ['Nottingham', 'London', 'Cardiff']
}
df = pd.DataFrame(data)
print(df)pythonŠtai kaip atrodo duomenų rėmelis:
Name Age City
0 Alice 25 Nottingham
1 Bob 30 London
2 Charlie 35 CardiffNorėdami pasiekti visas stulpelio reikšmes, galite naudoti stulpelio pavadinimą kartu su indeksavimo operatoriumi []. Tiesiog įveskite stulpelio pavadinimą kaip Python eilutę indeksavimo operatoriaus viduje:
# Access the Age column
print(df['Age'])pythonRezultatas yra amžių sąrašas:
0 25
1 30
2 35
Name: Age, dtype: int64Norėdami gauti daugiau nei vienos stulpelio duomenis, įrašykite stulpelių pavadinimus indeksavimo operatoriaus laukelyje ir atskirkite juos kableliais.
Indeksavimas su loc[] (eilučių žymėmis)
Jei norite pasiekti konkretų eilutę savo DataFrame, galite naudoti pandas loc indeksatorių. Indeksuotojui galite perduoti eilutės etiketę arba eilutės numerį. Šiame pavyzdyje naudosime tą patį DataFrame kaip ir aukščiau ir išgausime vertes iš pirmos eilutės (eilutė 0):
print(df.loc[0])pythonPirmiau pateiktas kodas išveda Alice vertes, kurios yra pateiktos pirmoje DataFrame eilutėje:
Name Alice
Age 25
City Nottingham
Name: 0, dtype: objectIndeksavimas su iloc[] (eilutės ir stulpelių numeriais)
Kitas būdas pasiekti konkrečius elementus jūsų DataFrame yra per eilučių ir stulpelių numerius. Tai tikriausiai populiariausias būdas rasti elementus DataFrame. Norėdami naudoti skaitmeninį indeksą, jums reikės DataFrame atributas iloc.
# Access the first row
print(df.iloc[0])
# Access the value in the first row and second column
print(df.iloc[0, 1])pythonŠtai rezultatas dirbant su iloc[]:
Name Alice
Age 25
City Nottingham
Name: 0, dtype: object
25Prieiga prie individualių verčių
Jei norite pasiekti tik vieną reikšmę, at indeksatorius yra greitas ir paprastas būdas tai padaryti. Naudodami šį indeksatorių, galite apibrėžti eilutes ir stulpelius naudodami jų etiketes. Pavyzdžiui, jei norite sužinoti, kur gyvena Bobas, įveskite „1“ eilutėje ir „Miestas“ stulpelyje:
print(df.at[1, 'City'])pythonČia gauname rezultatą „London“.
Arba galite naudoti iat indeksatorių, kuris veikia panašiai kaip at, bet vietoj pavadinimo naudoja sveikųjų skaičių pagrįstą stulpelio poziciją. Toliau pateiktas kodas duoda tokį patį rezultatą kaip ir ankstesnis pavyzdys:
print(df.iat[1, 2])pythonBūlio indeksavimas
Taip pat galite kurti DataFrame pogrupius pagal sąlygą. Tai vadinama Būlio indeksavimu. Sąlyga turėtų būti įvertinta kaip True arba False ir įrašoma tiesiai į indeksavimo operatorius. Pavyzdžiui, jei norite atrinkti eilutes, kuriose yra vyresni nei 30 metų žmonės, galite naudoti šį kodą:
# Select rows where Age is greater than 30
print(df[df['Age'] > 30])pythonVienintelis asmuo, kuris yra vyresnis nei 30 metų, yra Charlie, todėl gaunamas toks rezultatas:
Name Age City
2 Charlie 35 Cardiff