DataFrame'i ridade valimine Pythonis veergude väärtuste põhjal

DataFrame'i ridade valimine Pythonis veergude väärtuste põhjal
Python

Pandade kasutamine andmeraamide filtreerimiseks veeru väärtuste järgi

Pythonis andmetega töötades pakub Pandase teek võimsaid tööriistu andmete töötlemiseks ja analüüsimiseks. Üks levinud ülesanne on DataFrame'ist ridade valimine konkreetse veeru väärtuste põhjal. See toiming sarnaneb SQL-päringuga: SELECT * FROM tabelist WHERE veeru_nimi = mingi_väärtus.

Selles artiklis uurime, kuidas seda Pandas erinevate meetodite abil saavutada. Olenemata sellest, kas filtreerite ühe väärtuse või mitme kriteeriumi alusel, pakub Pandas selliste toimingute tegemiseks intuitiivseid ja tõhusaid viise. Sukeldume detailidesse.

Käsk Kirjeldus
pd.DataFrame() Loob DataFrame'i objekti sõnastikust või muudest andmestruktuuridest.
df[condition] Filtreerib DataFrame'i read tingimuse alusel, tagastades ainult need, mis vastavad kriteeriumidele.
print() Väljastab määratud sõnumi või DataFrame'i konsooli.
df['column'] == value Loob tõeväärtuse seeria, mida kasutatakse ridade filtreerimiseks, kus veerg vastab määratud väärtusele.
df['column'] >df['column'] > value Loob tõeväärtuse seeria, mida kasutatakse ridade filtreerimiseks, mille veeru väärtused on määratud väärtusest suuremad.
# Comment Kasutatakse selgituste või märkuste lisamiseks koodi sees, mida skripti osana ei käivitata.

DataFrame'i ridade valiku rakendamine Pandases

Pakutud skriptides on põhiülesanne DataFrame'i ridade filtreerimine konkreetsete veergude väärtuste alusel, mis on andmete analüüsimisel tavaline nõue. Esimene skript algab Pandase teegi importimisega import pandas as pd. See on oluline, kuna Pandas on Pythonis võimas andmetöötlusteek. Järgmisena loome näidise DataFrame'i kasutades pd.DataFrame() koos sõnastikuga, mis sisaldab andmeid nimede, vanuste ja linnade kohta. See struktuur võimaldab meil hõlpsasti visualiseerida ja töödelda tabeliandmeid. Skripti oluline osa on see, kus me ridu kasutades filtreerime df[df['city'] == 'New York']. See käsk valib kõik read, kus linna veeru väärtus on "New York". Tulemus salvestatakse muutujasse ny_rows, mis seejärel prinditakse filtreeritud DataFrame'i kuvamiseks.

Teine skript järgib sarnast struktuuri, kuid keskendub ridade filtreerimisele numbrilise tingimuse alusel. Pärast Pandade importimist ja toote-, hinna- ja koguseveergudega DataFrame'i loomist kasutab skript df[df['price'] > 150] et filtreerida ridu, mille hind on suurem kui 150. See käsk loob algse DataFrame'i alamhulga, mis sisaldab ainult määratud tingimusele vastavaid ridu. Tulemus salvestatakse expensive_products ja prinditi kontrollimiseks. Mõlemad skriptid demonstreerivad Pandade võimsust ja lihtsust andmetega manipuleerimisel. Kasutades tõeväärtuslikku indekseerimist – meetodit, mille käigus edastame andmete filtreerimiseks tõeste/vale väärtuste seeriat, saame tõhusalt valida erinevate tingimuste alusel andmete alamhulki, muutes selle andmeanalüütikute ja teadlaste jaoks hindamatuks tööriistaks.

Andmeraami ridade filtreerimine veeru väärtuste alusel

Python – Pandade kasutamine DataFrame'i operatsioonide jaoks

import pandas as pd
# Create a sample DataFrame
data = {
    'name': ['Alice', 'Bob', 'Charlie', 'David', 'Edward'],
    'age': [24, 27, 22, 32, 29],
    'city': ['New York', 'Los Angeles', 'New York', 'Chicago', 'Los Angeles']
}
df = pd.DataFrame(data)

# Select rows where city is New York
ny_rows = df[df['city'] == 'New York']
print(ny_rows)

# Output:
#       name  age      city
# 0    Alice   24  New York
# 2  Charlie   22  New York

DataFrame'i ridade päringud veeru väärtuste alusel

Python – täiustatud filtreerimine Pandadega

import pandas as pd

# Create a sample DataFrame
data = {
    'product': ['A', 'B', 'C', 'D'],
    'price': [100, 150, 200, 250],
    'quantity': [30, 50, 20, 40]
}
df = pd.DataFrame(data)

# Select rows where price is greater than 150
expensive_products = df[df['price'] > 150]
print(expensive_products)

# Output:
#   product  price  quantity
# 2       C    200        20
# 3       D    250        40

Täiustatud tehnikad DataFrame'i ridade valimiseks

Lisaks põhilisele filtreerimisele koos tõeväärtuse indekseerimisega pakub Pandas täiustatud tehnikaid ridade valimiseks veeru väärtuste põhjal. Üks selline meetod on query() funktsioon, mis võimaldab kasutada DataFrame'i ridade filtreerimiseks SQL-i sarnast süntaksit. Näiteks võite kasutada df.query('age > 25 and city == "New York"') et valida ridu, kus vanus on üle 25 aasta ja linn on New York. See meetod võib muuta teie koodi loetavamaks, eriti keeruliste tingimuste korral. Lisaks pakub Pandas loc[] ja iloc[] lisaseadmed rea täpsemaks valimiseks. The loc[] Accessor on sildipõhine, mis tähendab, et saate ridu filtreerida nende siltide või tõeväärtuse massiivi järgi. Seevastu iloc[] Accessor on täisarvu positsioonipõhine, mis võimaldab teil filtreerida ridu nende indeksi positsioonide järgi.

Veel üks Pandase võimas funktsioon on võimalus DataFrame'i ridu filtreerida isin() meetod. See meetod on kasulik, kui peate väärtuste loendi alusel ridu filtreerima. Näiteks, df[df['city'].isin(['New York', 'Los Angeles'])] valib read, kus linna veeru väärtus on kas New York või Los Angeles. Lisaks saate aheldada mitu tingimust kasutades & ja | operaatorid keerukamate filtrite loomiseks. Näiteks, df[(df['age'] > 25) & (df['city'] == 'New York')] filtreerib read, kus vanus on suurem kui 25 ja linn on New York. Need täiustatud tehnikad loovad tugeva raamistiku andmete filtreerimiseks, muutes Pandast mitmekülgseks tööriistaks andmete analüüsimiseks ja töötlemiseks.

Levinud küsimused Pandas DataFrame'i ridade valimise kohta

  1. Kuidas filtreerida DataFrame'i ridu mitme veeru väärtuse alusel?
  2. Saate kasutada tõeväärtuse indekseerimist mitme tingimusega, mis on kombineeritud kasutades & ja |. Näiteks: df[(df['age'] > 25) & (df['city'] == 'New York')].
  3. Mis on vahet loc[] ja iloc[]?
  4. loc[] on sildipõhine, samas iloc[] on täisarvu positsioonipõhine. Kasuta loc[] siltide järgi filtreerimiseks ja iloc[] indeksi positsioonide järgi filtreerimiseks.
  5. Kuidas ma saan kasutada query() funktsioon DataFrame'i ridade filtreerimiseks?
  6. The query() funktsioon võimaldab kasutada SQL-i sarnast süntaksit. Näiteks: df.query('age > 25 and city == "New York"').
  7. Kas ma saan ridu väärtuste loendi alusel filtreerida?
  8. Jah, saate kasutada isin() meetod. Näiteks: df[df['city'].isin(['New York', 'Los Angeles'])].
  9. Milline on parim viis ridade filtreerimiseks stringi sobitamise alusel?
  10. Võite kasutada str.contains() meetod. Näiteks: df[df['city'].str.contains('New')].
  11. Kuidas valida ridu, kus veeru väärtused puuduvad?
  12. Võite kasutada isna() meetod. Näiteks: df[df['age'].isna()].
  13. Kuidas saab kohandatud funktsiooni abil ridu filtreerida?
  14. Võite kasutada apply() meetod lambda funktsiooniga. Näiteks: df[df.apply(lambda row: row['age'] > 25, axis=1)].
  15. Kas ma saan ridu filtreerida indeksi väärtuste alusel?
  16. Jah, saate kasutada index.isin() meetod. Näiteks: df[df.index.isin([1, 3, 5])].

Peamised näpunäited DataFrame'i ridade valimiseks

DataFrame'ist ridade valimine veergude väärtuste põhjal on Pandade andmeanalüüsi põhioskus. Kasutades Boole'i ​​indekseerimist, loc[], iloc[], query()ja isin() meetodid võimaldavad tõhusat andmete filtreerimist. Nende tehnikate valdamine suurendab teie võimet andmekogumeid tõhusalt manipuleerida ja analüüsida.