Izbiranje vrstic DataFrame na podlagi vrednosti stolpcev v Pythonu

Izbiranje vrstic DataFrame na podlagi vrednosti stolpcev v Pythonu
Python

Uporaba Pand za filtriranje podatkovnih okvirov po vrednostih stolpcev

Pri delu s podatki v Pythonu knjižnica Pandas ponuja zmogljiva orodja za obdelavo in analizo podatkov. Ena pogosta naloga je izbiranje vrstic iz DataFrame na podlagi vrednosti v določenem stolpcu. Ta operacija je podobna poizvedbi SQL: SELECT * FROM tabela WHERE column_name = some_value.

V tem članku bomo raziskali, kako to doseči v Pandas z različnimi metodami. Ne glede na to, ali filtrirate po eni sami vrednosti ali več kriterijih, Pandas ponuja intuitivne in učinkovite načine za obravnavanje takšnih operacij. Poglobimo se v podrobnosti.

Ukaz Opis
pd.DataFrame() Ustvari objekt DataFrame iz slovarja ali drugih podatkovnih struktur.
df[condition] Filtrira vrstice DataFrame glede na pogoj in vrne samo tiste, ki izpolnjujejo pogoje.
print() Odda podano sporočilo ali DataFrame v konzolo.
df['column'] == value Ustvari logično serijo, ki se uporablja za filtriranje vrstic, kjer se stolpec ujema s podano vrednostjo.
df['column'] >df['column'] > value Ustvari logično serijo, ki se uporablja za filtriranje vrstic, kjer so vrednosti stolpcev večje od podane vrednosti.
# Comment Uporablja se za dodajanje razlag ali opomb znotraj kode, ki se ne izvajajo kot del skripta.

Implementacija izbire vrstic DataFrame v Pandas

V ponujenih skriptih je ključna naloga filtriranje vrstic iz DataFrame na podlagi določenih vrednosti stolpcev, kar je pogosta zahteva pri analizi podatkov. Prvi skript se začne z uvozom knjižnice Pandas z import pandas as pd. To je bistveno, saj je Pandas zmogljiva knjižnica za obdelavo podatkov v Pythonu. Nato ustvarimo vzorčni DataFrame z uporabo pd.DataFrame() s slovarjem, ki vsebuje podatke za imena, starost in mesta. Ta struktura nam omogoča preprosto vizualizacijo in manipulacijo tabelarnih podatkov. Ključni del skripta je, kje filtriramo vrstice z uporabo df[df['city'] == 'New York']. Ta ukaz izbere vse vrstice, kjer je vrednost stolpca mesta 'New York'. Rezultat je shranjen v spremenljivki ny_rows, ki se nato natisne za prikaz filtriranega DataFrame.

Drugi skript sledi podobni strukturi, vendar se osredotoča na filtriranje vrstic na podlagi številčnega pogoja. Po uvozu Pandas in ustvarjanju DataFrame s stolpci izdelkov, cene in količine skript uporablja df[df['price'] > 150] za filtriranje vrstic, kjer je cena višja od 150. Ta ukaz izdela podmnožico izvirnega DataFrame, ki vsebuje samo vrstice, ki izpolnjujejo podani pogoj. Rezultat je shranjen v expensive_products in natisnjen za preverjanje. Oba skripta prikazujeta moč in preprostost Pand za manipulacijo podatkov. Z uporabo logičnega indeksiranja, metode, pri kateri posredujemo niz vrednosti true/false za filtriranje podatkov, lahko učinkovito izberemo podmnožice podatkov na podlagi različnih pogojev, zaradi česar je neprecenljivo orodje za analitike podatkov in znanstvenike.

Filtriranje vrstic v DataFrame na podlagi vrednosti stolpcev

Python - Uporaba Pandas za operacije DataFrame

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

Poizvedovanje po vrsticah DataFrame na podlagi vrednosti stolpcev

Python - Napredno filtriranje s Pandas

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

Napredne tehnike za izbiranje vrstic DataFrame

Poleg osnovnega filtriranja z logičnim indeksiranjem Pandas ponuja naprednejše tehnike za izbiranje vrstic na podlagi vrednosti stolpcev. Ena taka metoda je query() funkcijo, ki vam omogoča uporabo sintakse, podobne SQL, za filtriranje vrstic DataFrame. Na primer, lahko uporabite df.query('age > 25 and city == "New York"') da izberete vrstice, kjer je starost večja od 25 let in je mesto New York. Ta metoda lahko naredi vašo kodo bolj berljivo, zlasti za zapletene pogoje. Poleg tega Pandas ponuja loc[] in iloc[] pripomočki za natančnejšo izbiro vrstic. The loc[] dostopnik temelji na oznakah, kar pomeni, da lahko filtrirate vrstice po njihovih oznakah ali logični matriki. V nasprotju s tem je iloc[] dostopnik temelji na polnem položaju, kar vam omogoča filtriranje vrstic po njihovih položajih indeksa.

Druga močna funkcija v Pandas je možnost filtriranja vrstic DataFrame z uporabo isin() metoda. Ta metoda je uporabna, ko morate filtrirati vrstice na podlagi seznama vrednosti. na primer df[df['city'].isin(['New York', 'Los Angeles'])] izbere vrstice, kjer je vrednost stolpca mesta New York ali Los Angeles. Poleg tega lahko povežete več pogojev z uporabo & in | operaterji za ustvarjanje bolj zapletenih filtrov. Na primer, df[(df['age'] > 25) & (df['city'] == 'New York')] filtrira vrstice, v katerih je starost večja od 25 let in je mesto New York. Te napredne tehnike zagotavljajo robusten okvir za filtriranje podatkov, zaradi česar je Panda vsestransko orodje za analizo podatkov in manipulacijo.

Pogosta vprašanja o izbiranju vrstic DataFrame v Pandas

  1. Kako filtriram vrstice v DataFrame na podlagi več vrednosti stolpcev?
  2. Uporabite lahko logično indeksiranje z več pogoji v kombinaciji z uporabo & in |. Na primer: df[(df['age'] > 25) & (df['city'] == 'New York')].
  3. Kaj je razlika med loc[] in iloc[]?
  4. loc[] temelji na oznakah, medtem ko iloc[] temelji na polnem položaju. Uporaba loc[] za filtriranje po oznakah in iloc[] za filtriranje po položajih indeksa.
  5. Kako lahko uporabim query() funkcijo za filtriranje vrstic DataFrame?
  6. The query() vam omogoča uporabo sintakse, podobne SQL. Na primer: df.query('age > 25 and city == "New York"').
  7. Ali lahko filtriram vrstice na podlagi seznama vrednosti?
  8. Da, lahko uporabite isin() metoda. Na primer: df[df['city'].isin(['New York', 'Los Angeles'])].
  9. Kateri je najboljši način za filtriranje vrstic na podlagi ujemanja nizov?
  10. Lahko uporabite str.contains() metoda. Na primer: df[df['city'].str.contains('New')].
  11. Kako izberem vrstice, kjer manjkajo vrednosti stolpcev?
  12. Lahko uporabite isna() metoda. Na primer: df[df['age'].isna()].
  13. Kako lahko filtriram vrstice s funkcijo po meri?
  14. Lahko uporabite apply() metoda z lambda funkcijo. Na primer: df[df.apply(lambda row: row['age'] > 25, axis=1)].
  15. Ali lahko filtriram vrstice glede na vrednosti indeksa?
  16. Da, lahko uporabite index.isin() metoda. Na primer: df[df.index.isin([1, 3, 5])].

Ključni zaključki za izbiro vrstic DataFrame

Izbiranje vrstic iz DataFrame na podlagi vrednosti stolpcev je temeljna veščina pri analizi podatkov s programom Pandas. Z uporabo logičnega indeksiranja, loc[], iloc[], query(), in isin() omogoča učinkovito filtriranje podatkov. Obvladovanje teh tehnik izboljša vašo sposobnost učinkovite manipulacije in analize podatkovnih nizov.