Eilučių filtravimas Pandas DataFrames
Pandas yra galinga Python biblioteka, skirta duomenų apdorojimui ir analizei. Įprasta užduotis yra pasirinkti eilutes iš DataFrame pagal stulpelių reikšmes, panašiai kaip SQL SELECT * FROM lentelėje WHERE stulpelio_pavadinimas = some_value.
Šiame vadove bus aprašyti įvairūs būdai, kaip tai pasiekti „Pandas“, kad būtų lengva efektyviai filtruoti duomenis. Nesvarbu, ar esate pradedantysis, ar patyręs vartotojas, šie patarimai pagerins jūsų duomenų tvarkymo įgūdžius.
komandą | apibūdinimas |
---|---|
pd.DataFrame(data) | Sukuria DataFrame iš duomenų žodyno. |
df[column_name] | Prieina prie DataFrame stulpelio pagal pavadinimą. |
df[condition] | Filtruoja DataFrame pagal stulpeliui taikomą sąlygą. |
print(selected_rows) | Spausdina duomenų rėmelį arba jo poaibį į konsolę. |
df[df['Age'] >df[df['Age'] > 25] | Parenkamos eilutės, kuriose stulpelio „Amžius“ reikšmės yra didesnės nei 25. |
df[df['City'] == 'Chicago'] | Parenkamos eilutės, kuriose stulpelio „Miestas“ reikšmės yra lygios „Chicago“. |
„DataFrame“ eilučių pasirinkimo supratimas „Pandas“.
Pateikti scenarijai parodo, kaip pasirinkti eilutes iš DataFrame pagal stulpelių reikšmes naudojant Pandas biblioteką Python. Pirmasis scenarijus prasideda importuojant Pandas biblioteką su import pandas as pd komandą. Tada jis sukuria duomenų rėmelio pavyzdį naudodamas duomenų žodyną, kuris konvertuojamas į DataFrame su pd.DataFrame(data) komandą. Tada scenarijus iliustruoja du eilučių pasirinkimo būdus: pasirenkant eilutes, kuriose stulpelio „Amžius“ reikšmė yra didesnė nei 25, naudojant df[df['Age'] > 25], ir pasirinkdami eilutes, kuriose stulpelio „Miestas“ reikšmė yra „Čikaga“, naudodami df[df['City'] == 'Chicago']. Šie filtruoti duomenų rėmeliai spausdinami naudojant print() funkcija, kad būtų rodomos pasirinktos eilutės.
Antrasis scenarijus yra panašios struktūros, bet naudoja skirtingus duomenis ir atrankos kriterijus. Jis sukuria duomenų rėmelį su produkto informacija, įskaitant stulpelius „Produktas“, „Kaina“ ir „Akcija“. Pasirinktos eilutės, kuriose „Kaina“ yra mažesnė arba lygi 200 su df[df['Price'] <= 200], ir kur „Stock“ yra daugiau nei 40 naudojamų df[df['Stock'] > 40]. Šių scenarijų tikslas – parodyti, kaip filtruoti DataFrame eilutes pagal konkrečias sąlygas, panašiai kaip naudotumėte SQL užklausą, kad pasirinktumėte eilutes iš lentelės pagal stulpelio reikšmę. Suprasdami ir taikydami šias komandas, galite efektyviai valdyti ir analizuoti duomenis savo duomenų rėmeliuose.
Eilučių pasirinkimas duomenų rėmelyje naudojant stulpelių reikšmes programoje Pandas
Python su Pandas biblioteka
# Importing the necessary library
import pandas as pd
# Creating a sample DataFrame
data = {
'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
'Age': [24, 27, 22, 32, 29],
'City': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix']
}
df = pd.DataFrame(data)
# Selecting rows where Age is greater than 25
selected_rows = df[df['Age'] > 25]
print(selected_rows)
# Selecting rows where City is 'Chicago'
chicago_rows = df[df['City'] == 'Chicago']
print(chicago_rows)
Duomenų filtravimas duomenų rėmelyje pagal stulpelio kriterijus
Python su Pandas biblioteka
# Importing pandas library
import pandas as pd
# Creating a sample DataFrame
data = {'Product': ['A', 'B', 'C', 'D', 'E'],
'Price': [100, 150, 200, 250, 300],
'Stock': [30, 60, 90, 20, 50]}
df = pd.DataFrame(data)
# Selecting rows where Price is less than or equal to 200
affordable_products = df[df['Price'] <= 200]
print(affordable_products)
# Selecting rows where Stock is more than 40
in_stock = df[df['Stock'] > 40]
print(in_stock)
Pažangūs „DataFrame“ eilučių pasirinkimo „Pandas“ metodai
Be pagrindinio filtravimo naudojant loginį indeksavimą, „Pandas“ siūlo pažangias eilučių pasirinkimo pagal stulpelių reikšmes metodus. Vienas galingas būdas yra naudoti query() funkcija, leidžianti filtruoti eilutes su užklausos išraiška, todėl sintaksė tampa švaresnė ir dažnai intuityvesnė. Pavyzdžiui, užuot naudoję df[df['Age'] > 25], tu gali rašyti df.query('Age > 25'). Šis metodas ypač naudingas sprendžiant sudėtingesnes sąlygas arba kai stulpelių pavadinimuose yra tarpų. Be to, isin() funkcija naudinga, kai norite filtruoti eilutes pagal reikšmių sąrašą. Pavyzdžiui, norėdami pasirinkti eilutes, kuriose stulpelio „Miestas“ reikšmė yra „Čikaga“ arba „Niujorkas“, galite naudoti df[df['City'].isin(['Chicago', 'New York'])].
Kita technika apima loc ir iloc indeksuotojai. The loc indeksavimo priemonė yra pagrįsta etiketėmis, todėl galite pasirinkti eilutes pagal eilučių etiketes ir stulpelių pavadinimus iloc yra pagrįsta vieta sveikaisiais skaičiais, leidžianti pasirinkti pagal eilučių ir stulpelių numerius. Šis lankstumas ypač naudingas renkantis eilutes pagal kitam stulpeliui taikomas sąlygas. Pavyzdžiui, df.loc[df['Age'] > 25, 'Name'] pateiks vyresnių nei 25 metų asmenų vardus. Šie metodai išplečia jūsų įrankių rinkinį, skirtą efektyviam duomenų tvarkymui ir analizei „Pandas“, siūlydami lengviau skaitomą ir prižiūrimą kodą.
Dažni klausimai ir atsakymai apie DataFrame eilučių pasirinkimą
- Kaip galiu pasirinkti eilutes pagal kelias sąlygas?
- Galite naudoti query() funkcija arba derinkite sąlygas su loginiais operatoriais, pvz & ir |. Pavyzdžiui, df[(df['Age'] > 25) & (df['City'] == 'Chicago')].
- Ar galiu filtruoti eilutes pagal verčių sąrašą?
- Taip, naudokite isin() funkcija. Pavyzdžiui, df[df['City'].isin(['Chicago', 'New York'])].
- Koks skirtumas tarp loc ir iloc?
- loc yra pagrįstas etiketėmis, o iloc yra pagrįstas sveikaisiais skaičiais. Naudokite loc su eilučių/stulpelių etiketėmis ir iloc su eilučių/stulpelių indeksais.
- Kaip filtruojant eilutes pasirinkti konkrečius stulpelius?
- Tu gali naudoti loc. Pavyzdžiui, df.loc[df['Age'] > 25, ['Name', 'City']].
- Kaip tvarkyti trūkstamas reikšmes pasirenkant eilutes?
- Naudoti dropna() funkcija pašalinti eilutes su trūkstamomis reikšmėmis, arba fillna() pakeisti juos nurodyta verte.
- Ar galiu naudoti įprastus posakius eilėms filtruoti?
- Taip, str.contains() funkcija su regex=True parametras leidžia filtruoti eilutes pagal reguliariojo reiškinio šablonus. Pavyzdžiui, df[df['Name'].str.contains('^A', regex=True)].
- Kaip filtruoti eilutes pagal indeksą?
- Tu gali naudoti loc su indekso pavadinimu. Pavyzdžiui, df.loc[df.index == 'some_index'].
- Ką daryti, jei mano stulpelių pavadinimuose yra tarpų arba specialiųjų simbolių?
- Naudoti query() funkcija, kuri gali tvarkyti tokius stulpelių pavadinimus su backticks. Pavyzdžiui, df.query('`column name` == value').
Paskutinės mintys apie „DataFrame“ eilučių pasirinkimo būdus
Eilučių pasirinkimas iš DataFrame pagal Pandas stulpelių reikšmes yra esminis įgūdis manipuliuojant duomenimis. Įvairūs aptarti metodai, įskaitant loginį indeksavimą, query(), isin(), ir etiketėmis bei sveikaisiais skaičiais pagrįstą indeksavimą su loc ir iloc, suteikia galingų įrankių efektyviam duomenų filtravimui. Šių metodų įvaldymas leidžia atlikti geresnę duomenų analizę ir švaresnį bei lengviau prižiūrimą kodą.