Kuidas filtreerida Pandase andmeraami ridu veergude väärtuste alusel

Temp mail SuperHeros
Kuidas filtreerida Pandase andmeraami ridu veergude väärtuste alusel
Kuidas filtreerida Pandase andmeraami ridu veergude väärtuste alusel

Ridade filtreerimine Pandas DataFramesis

Pandas on Pythoni võimas raamatukogu andmete töötlemiseks ja analüüsimiseks. Levinud ülesanne on DataFrame'ist ridade valimine veeruväärtuste põhjal, sarnaselt SQL-i tabelis SELECT * FROM WHERE veeru_nimi = mingi_väärtus.

See juhend juhendab teid Pandas selle saavutamiseks erinevatest meetoditest, mis muudab teie andmete tõhusa filtreerimise lihtsaks. Olenemata sellest, kas olete algaja või kogenud kasutaja, parandavad need näpunäited teie andmetöötlusoskusi.

Käsk Kirjeldus
pd.DataFrame(data) Loob andmesõnastikust DataFrame'i.
df[column_name] Juurdepääs DataFrame'i veerule nime järgi.
df[condition] Filtreerib DataFrame'i veerule rakendatud tingimuse alusel.
print(selected_rows) Prindib konsooli DataFrame'i või selle alamhulga.
df[df['Age'] >df[df['Age'] > 25] Valib read, kus veeru „Vanus” väärtused on suuremad kui 25.
df[df['City'] == 'Chicago'] Valib read, kus veeru „Linn” väärtused on võrdsed väärtusega „Chicago”.

Pandas DataFrame'i ridade valiku mõistmine

Kaasasolevad skriptid näitavad, kuidas valida DataFrame'ist ridu veeruväärtuste alusel, kasutades Pythoni Pandase teeki. Esimene skript algab Pandase teegi importimisega import pandas as pd käsk. Seejärel loob see andmesõnastiku abil näidise DataFrame'i, mis teisendatakse DataFrame'iks koos pd.DataFrame(data) käsk. Seejärel illustreerib skript kahte reavaliku meetodit: ridade valimine, kus veeru „Vanus” väärtus on suurem kui 25, kasutades df[df['Age'] > 25]ja valides read, kus veeru „Linn” väärtus on „Chicago”, kasutades df[df['City'] == 'Chicago']. Need filtreeritud andmeraamid prinditakse kasutades print() funktsioon valitud ridade kuvamiseks.

Teine skript järgib sarnast struktuuri, kuid kasutab erinevaid andmeid ja valikukriteeriume. See loob DataFrame'i tooteteabega, sealhulgas veergudega "Toode", "Hind" ja "Laoseis". Valitakse read, kus 'Hind' on väiksem kui 200 või sellega võrdne df[df['Price'] <= 200], ja kus „Laoseis” on rohkem kui 40 kasutuses df[df['Stock'] > 40]. Nende skriptide eesmärk on näidata, kuidas filtreerida DataFrame'i ridu konkreetsete tingimuste alusel, sarnaselt sellele, kuidas kasutaksite SQL-päringut tabelist ridade valimiseks veeru väärtuse alusel. Nendest käskudest aru saades ja neid rakendades saate oma DataFramesi andmeid tõhusalt töödelda ja analüüsida.

Andmeraami ridade valimine Pandas veeruväärtuste abil

Python koos Pandase raamatukoguga

# 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)

Andmete filtreerimine andmeraamis veeru kriteeriumide alusel

Python koos Pandase raamatukoguga

# 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)

Täiustatud tehnikad Pandas DataFrame'i ridade valimiseks

Lisaks põhilisele filtreerimisele, kasutades tõeväärtuse indekseerimist, pakub Pandas täiustatud tehnikaid ridade valimiseks veeru väärtuste põhjal. Üks võimas meetod on kasutada query() funktsioon, mis võimaldab filtreerida ridu päringuavaldisega, muutes süntaksi puhtamaks ja sageli ka intuitiivsemaks. Näiteks kasutamise asemel df[df['Age'] > 25], võite kirjutada df.query('Age > 25'). See meetod on eriti kasulik keerukamate tingimuste käsitlemisel või kui veergude nimed sisaldavad tühikuid. Lisaks on isin() Funktsioon on kasulik, kui soovite ridu väärtuste loendi alusel filtreerida. Näiteks ridade valimiseks, kus veeru 'Linn' väärtus on kas 'Chicago' või 'New York', saate kasutada df[df['City'].isin(['Chicago', 'New York'])].

Teine tehnika hõlmab loc ja iloc indekseerijad. The loc indekseerija on sildipõhine, võimaldades valida ridu reasiltide ja veergude nimede alusel iloc on täisarvu asukohapõhine, võimaldades valikut ridade ja veergude numbrite järgi. See paindlikkus on eriti kasulik ridade valimiseks mõnele teisele veerule rakendatud tingimuse alusel. Näiteks, df.loc[df['Age'] > 25, 'Name'] tagastab isikute nimed, kes on vanemad kui 25. Need meetodid laiendavad teie tööriistakomplekti Pandas andmete tõhusaks käsitlemiseks ja analüüsimiseks, pakkudes loetavamat ja hooldatavamat koodi.

Levinud küsimused ja vastused DataFrame'i ridade valimise kohta

  1. Kuidas valida ridu mitme tingimuse alusel?
  2. Võite kasutada query() funktsiooni või kombineeri tingimusi loogiliste operaatoritega nagu & ja |. Näiteks, df[(df['Age'] > 25) & (df['City'] == 'Chicago')].
  3. Kas ma saan ridu väärtuste loendi alusel filtreerida?
  4. Jah, kasuta isin() funktsiooni. Näiteks, df[df['City'].isin(['Chicago', 'New York'])].
  5. Mis on vahet loc ja iloc?
  6. loc on sildipõhine, samas iloc on täisarvu asukohapõhine. Kasuta loc rea/veeru siltidega ja iloc rea/veeru indeksitega.
  7. Kuidas saab ridade filtreerimise ajal valida konkreetseid veerge?
  8. Sa võid kasutada loc. Näiteks, df.loc[df['Age'] > 25, ['Name', 'City']].
  9. Kuidas käsitleda ridade valimisel puuduvaid väärtusi?
  10. Kasuta dropna() funktsioon puuduvate väärtustega ridade eemaldamiseks või fillna() asendada need määratud väärtusega.
  11. Kas ma saan ridade filtreerimiseks kasutada regulaaravaldisi?
  12. Jah, str.contains() funktsiooniga regex=True parameeter võimaldab filtreerida ridu regex-mustrite alusel. Näiteks, df[df['Name'].str.contains('^A', regex=True)].
  13. Kuidas filtreerida ridu indeksi alusel?
  14. Sa võid kasutada loc indeksi nimega. Näiteks, df.loc[df.index == 'some_index'].
  15. Mis siis, kui minu veergude nimed sisaldavad tühikuid või erimärke?
  16. Kasuta query() funktsioon, mis suudab selliseid veergude nimesid käsitleda tagumise märgiga. Näiteks, df.query('`column name` == value').

Viimased mõtted DataFrame'i ridade valimise tehnikate kohta

Andmeraamist ridade valimine Pandas veergude väärtuste põhjal on andmetega manipuleerimisel ülioluline oskus. Arutatud erinevad meetodid, sealhulgas tõeväärtuse indekseerimine, query(), isin()ja sildipõhine ja täisarvu asukohapõhine indekseerimine koos loc ja iloc, pakuvad võimsaid tööriistu andmete tõhusaks filtreerimiseks. Nende tehnikate valdamine võimaldab paremat andmete analüüsi ning puhtamat ja paremini hooldatavat koodi.