Filtriranje redaka u Pandas DataFrames
Pandas je moćna biblioteka u Pythonu za manipulaciju i analizu podataka. Uobičajen zadatak je odabir redaka iz DataFramea na temelju vrijednosti stupca, slično SQL-ovoj SELECT * FROM tablici WHERE column_name = some_value.
Ovaj će vas vodič provesti kroz različite metode kako to postići u Pandas, olakšavajući učinkovito filtriranje podataka. Bilo da ste početnik ili iskusan korisnik, ovi savjeti poboljšat će vaše vještine rukovanja podacima.
Naredba | Opis |
---|---|
pd.DataFrame(data) | Stvara DataFrame iz rječnika podataka. |
df[column_name] | Pristupa stupcu u DataFrameu po imenu. |
df[condition] | Filtrira DataFrame na temelju uvjeta primijenjenog na stupac. |
print(selected_rows) | Ispisuje DataFrame ili njegov podskup na konzolu. |
df[df['Age'] >df[df['Age'] > 25] | Odabire retke u kojima su vrijednosti stupca "Dob" veće od 25. |
df[df['City'] == 'Chicago'] | Odaberite retke u kojima su vrijednosti stupca 'Grad' jednake 'Chicago'. |
Razumijevanje odabira reda DataFrame u Pandas
Pružene skripte pokazuju kako odabrati retke iz DataFramea na temelju vrijednosti stupaca pomoću biblioteke Pandas u Pythonu. Prva skripta počinje uvozom biblioteke Pandas s import pandas as pd naredba. Zatim stvara ogledni DataFrame pomoću rječnika podataka, koji se pretvara u DataFrame s pd.DataFrame(data) naredba. Skripta zatim ilustrira dvije metode za odabir redaka: odabir redaka gdje je vrijednost stupca 'Dob' veća od 25 pomoću df[df['Age'] > 25]i odabirom redaka u kojima je vrijednost stupca "Grad" "Chicago". df[df['City'] == 'Chicago']. Ovi filtrirani okviri podataka ispisuju se pomoću print() funkciju za prikaz odabranih redaka.
Druga skripta slijedi sličnu strukturu, ali koristi različite podatke i kriterije odabira. Stvara DataFrame s informacijama o proizvodu, uključujući stupce "Proizvod", "Cijena" i "Zalihe". Odabiru se retci gdje je 'Cijena' manja ili jednaka 200 s df[df['Price'] <= 200], i gdje je 'Stock' više od 40 korištenja df[df['Stock'] > 40]. Svrha ovih skripti je pokazati kako filtrirati retke DataFramea na temelju određenih uvjeta, slično kao što biste koristili SQL upit za odabir redaka iz tablice na temelju vrijednosti stupca. Razumijevanjem i primjenom ovih naredbi možete učinkovito manipulirati i analizirati podatke u svojim DataFramesima.
Odabir redaka u DataFrameu korištenjem vrijednosti stupaca u Pandas
Python s bibliotekom Pandas
# 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)
Filtriranje podataka u DataFrameu na temelju kriterija stupca
Python s bibliotekom Pandas
# 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)
Napredne tehnike za odabir redaka DataFrame u Pandas
Osim osnovnog filtriranja pomoću Booleovog indeksiranja, Pandas nudi napredne tehnike za odabir redaka na temelju vrijednosti stupaca. Jedna moćna metoda je korištenje query() koja vam omogućuje filtriranje redaka pomoću izraza upita, čineći sintaksu čišćom i često intuitivnijom. Na primjer, umjesto korištenja df[df['Age'] > 25], možete napisati df.query('Age > 25'). Ova je metoda osobito korisna kada se radi o složenijim uvjetima ili kada nazivi stupaca sadrže razmake. Osim toga, isin() funkcija je korisna kada želite filtrirati retke na temelju popisa vrijednosti. Na primjer, za odabir redaka u kojima je vrijednost stupca 'Grad' ili 'Chicago' ili 'New York', možete koristiti df[df['City'].isin(['Chicago', 'New York'])].
Druga tehnika uključuje loc i iloc indekseri. The loc Indeksator se temelji na oznakama, što vam omogućuje odabir redaka na temelju oznaka redaka i naziva stupaca, dok iloc temelji se na cjelobrojnoj lokaciji, što omogućuje odabir prema brojevima redaka i stupaca. Ova je fleksibilnost posebno korisna za odabir redaka na temelju uvjeta primijenjenog na drugi stupac. Na primjer, df.loc[df['Age'] > 25, 'Name'] vratit će imena osoba starijih od 25 godina. Ove metode proširuju vaš skup alata za učinkovito rukovanje i analizu podataka u Pandas, nudeći čitljiviji kod koji se može održavati.
Uobičajena pitanja i odgovori o odabiru redaka DataFrame
- Kako mogu odabrati retke na temelju više uvjeta?
- Možete koristiti query() funkcioniraju ili kombiniraju uvjete s logičkim operatorima poput & i |. Na primjer, df[(df['Age'] > 25) & (df['City'] == 'Chicago')].
- Mogu li filtrirati retke na temelju popisa vrijednosti?
- Da, koristite isin() funkcija. Na primjer, df[df['City'].isin(['Chicago', 'New York'])].
- Koja je razlika između loc i iloc?
- loc temelji se na oznakama, dok iloc temelji se na cijelobrojnoj lokaciji. Koristiti loc s oznakama reda/stupca i iloc s indeksima retka/stupca.
- Kako mogu odabrati određene stupce dok filtriram retke?
- Možeš koristiti loc. Na primjer, df.loc[df['Age'] > 25, ['Name', 'City']].
- Kako postupati s vrijednostima koje nedostaju pri odabiru redaka?
- Koristiti dropna() funkciju za uklanjanje redaka s nedostajućim vrijednostima ili fillna() zamijeniti ih određenom vrijednošću.
- Mogu li koristiti regularne izraze za filtriranje redaka?
- Da, str.contains() funkcija s regex=True parametar vam omogućuje filtriranje redaka na temelju uzoraka regularnih izraza. Na primjer, df[df['Name'].str.contains('^A', regex=True)].
- Kako mogu filtrirati retke na temelju indeksa?
- Možeš koristiti loc s imenom indeksa. Na primjer, df.loc[df.index == 'some_index'].
- Što ako nazivi mojih stupaca sadrže razmake ili posebne znakove?
- Koristiti query() funkcija koja može obraditi takve nazive stupaca s povratnim kvačicama. Na primjer, df.query('`column name` == value').
Završne misli o tehnikama odabira reda DataFrame
Odabir redaka iz DataFramea na temelju vrijednosti stupaca u Pandas ključna je vještina za manipulaciju podacima. Različite metode o kojima se govori, uključujući Booleovo indeksiranje, query(), isin(), te indeksiranje na temelju oznake i lokacije na cijelom broju loc i iloc, pružaju snažne alate za učinkovito filtriranje podataka. Ovladavanje ovim tehnikama omogućuje bolju analizu podataka i čišći kod koji se lakše održava.