Filtriranje vrstic v Pandas DataFrames
Pandas je zmogljiva knjižnica v Pythonu za obdelavo in analizo podatkov. Običajna naloga je izbiranje vrstic iz DataFrame na podlagi vrednosti stolpcev, podobno kot SQL SELECT * FROM tabela WHERE column_name = some_value.
Ta vodnik vas bo vodil skozi različne metode, kako to doseči v Pandas, kar bo olajšalo učinkovito filtriranje vaših podatkov. Ne glede na to, ali ste začetnik ali izkušen uporabnik, bodo ti nasveti izboljšali vaše sposobnosti ravnanja s podatki.
Ukaz | Opis |
---|---|
pd.DataFrame(data) | Ustvari DataFrame iz slovarja podatkov. |
df[column_name] | Dostopa do stolpca v DataFrame po imenu. |
df[condition] | Filtrira DataFrame glede na pogoj, uporabljen za stolpec. |
print(selected_rows) | Natisne DataFrame ali njegov podnabor na konzolo. |
df[df['Age'] >df[df['Age'] > 25] | Izberite vrstice, kjer so vrednosti stolpca »Starost« večje od 25. |
df[df['City'] == 'Chicago'] | Izbere vrstice, kjer so vrednosti stolpca »Mesto« enake vrednosti »Chicago«. |
Razumevanje izbire vrstic DataFrame v Pandas
Priloženi skripti prikazujejo, kako izbrati vrstice iz DataFrame na podlagi vrednosti stolpcev z uporabo knjižnice Pandas v Pythonu. Prvi skript se začne z uvozom knjižnice Pandas z import pandas as pd ukaz. Nato ustvari vzorčni DataFrame z uporabo slovarja podatkov, ki se pretvori v DataFrame z pd.DataFrame(data) ukaz. Skript nato ponazarja dve metodi za izbiro vrstic: izbiranje vrstic, kjer je vrednost stolpca 'Starost' večja od 25 z uporabo df[df['Age'] > 25]in izbiranje vrstic, kjer je vrednost stolpca »Mesto« »Chicago« z uporabo df[df['City'] == 'Chicago']. Ti filtrirani DataFrames so natisnjeni z uporabo print() funkcijo za prikaz izbranih vrstic.
Drugi skript ima podobno strukturo, vendar uporablja drugačne podatke in izbirna merila. Ustvari DataFrame s podatki o izdelku, vključno s stolpci »Product«, »Price« in »Stock«. Izbrane so vrstice, kjer je 'Cena' manjša ali enaka 200 z df[df['Price'] <= 200], in kjer je 'zaloga' več kot 40 rab df[df['Stock'] > 40]. Namen teh skriptov je prikazati, kako filtrirati vrstice DataFrame na podlagi določenih pogojev, podobno kot bi uporabili poizvedbo SQL za izbiro vrstic iz tabele na podlagi vrednosti stolpca. Z razumevanjem in uporabo teh ukazov lahko učinkovito upravljate in analizirate podatke v svojih podatkovnih okvirih.
Izbiranje vrstic v DataFrame z uporabo vrednosti stolpcev v Pandas
Python s knjižnico 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 podatkov v DataFrame na podlagi meril stolpcev
Python s knjižnico 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 izbiranje vrstic DataFrame v Pandas
Poleg osnovnega filtriranja z logičnim indeksiranjem Pandas ponuja napredne tehnike za izbiranje vrstic na podlagi vrednosti stolpcev. Ena močna metoda je uporaba query() funkcijo, ki omogoča filtriranje vrstic s poizvedbenim izrazom, zaradi česar je sintaksa čistejša in pogosto bolj intuitivna. Na primer, namesto uporabe df[df['Age'] > 25], lahko pišeš df.query('Age > 25'). Ta metoda je še posebej uporabna pri obravnavanju bolj zapletenih pogojev ali kadar imena stolpcev vsebujejo presledke. Poleg tega je isin() funkcija je uporabna, če želite filtrirati vrstice na podlagi seznama vrednosti. Na primer, če želite izbrati vrstice, kjer je vrednost stolpca »Mesto« bodisi »Chicago« ali »New York«, lahko uporabite df[df['City'].isin(['Chicago', 'New York'])].
Druga tehnika vključuje loc in iloc indeksatorji. The loc indexer temelji na oznakah, kar vam omogoča izbiro vrstic na podlagi oznak vrstic in imen stolpcev, medtem ko iloc temelji na celi številski lokaciji in omogoča izbiro po številkah vrstic in stolpcev. Ta prilagodljivost je še posebej uporabna za izbiranje vrstic na podlagi pogoja, uporabljenega za drug stolpec. Na primer, df.loc[df['Age'] > 25, 'Name'] bo vrnil imena posameznikov, starejših od 25 let. Te metode razširijo vaš nabor orodij za učinkovito ravnanje in analiziranje podatkov v Pandas ter ponujajo bolj berljivo in vzdržljivo kodo.
Pogosta vprašanja in odgovori o izbiranju vrstic DataFrame
- Kako lahko izberem vrstice na podlagi več pogojev?
- Lahko uporabite query() funkcijo ali kombinacijo pogojev z logičnimi operatorji, kot je & in |. na primer df[(df['Age'] > 25) & (df['City'] == 'Chicago')].
- Ali lahko filtriram vrstice na podlagi seznama vrednosti?
- Da, uporabite isin() funkcijo. Na primer, df[df['City'].isin(['Chicago', 'New York'])].
- Kaj je razlika med loc in iloc?
- loc temelji na oznakah, medtem ko iloc temelji na celoštevilski lokaciji. Uporaba loc z oznakami vrstic/stolpcev in iloc z indeksi vrstic/stolpcev.
- Kako lahko med filtriranjem vrstic izberem določene stolpce?
- Lahko uporabiš loc. na primer df.loc[df['Age'] > 25, ['Name', 'City']].
- Kako ravnam z manjkajočimi vrednostmi pri izbiranju vrstic?
- Uporabi dropna() funkcijo za odstranitev vrstic z manjkajočimi vrednostmi, oz fillna() da jih nadomestite z določeno vrednostjo.
- Ali lahko uporabim regularne izraze za filtriranje vrstic?
- Da, str.contains() funkcijo z regex=True omogoča filtriranje vrstic na podlagi vzorcev regularnih izrazov. na primer df[df['Name'].str.contains('^A', regex=True)].
- Kako filtriram vrstice glede na indeks?
- Lahko uporabiš loc z imenom indeksa. na primer df.loc[df.index == 'some_index'].
- Kaj pa, če moja imena stolpcev vsebujejo presledke ali posebne znake?
- Uporabi query() funkcijo, ki lahko obravnava taka imena stolpcev s povratnimi kljukicami. na primer df.query('`column name` == value').
Končne misli o tehnikah izbire vrstic DataFrame
Izbiranje vrstic iz DataFrame na podlagi vrednosti stolpcev v Pandas je ključna veščina za manipulacijo podatkov. Različne obravnavane metode, vključno z logičnim indeksiranjem, query(), isin(), in indeksiranje na podlagi oznak in na celi številski lokaciji loc in iloc, zagotavljajo zmogljiva orodja za učinkovito filtriranje podatkov. Obvladovanje teh tehnik omogoča boljšo analizo podatkov in čistejšo kodo, ki jo je lažje vzdrževati.