DataFrame-rivien valitseminen Pythonin sarakearvojen perusteella

DataFrame-rivien valitseminen Pythonin sarakearvojen perusteella
Python

Pandan käyttäminen tietokehysten suodattamiseen sarakearvojen mukaan

Kun työskentelet tietojen kanssa Pythonissa, Pandas-kirjasto tarjoaa tehokkaita työkaluja tietojen käsittelyyn ja analysointiin. Yksi yleinen tehtävä on rivien valitseminen DataFrame-kehyksestä tietyn sarakkeen arvojen perusteella. Tämä toiminto on samanlainen kuin SQL-kysely: SELECT * FROM taulukko WHERE sarakkeen_nimi = jokin_arvo.

Tässä artikkelissa tutkimme, kuinka tämä saavutetaan Pandasissa eri menetelmillä. Suodatatpa yhden arvon tai useiden kriteerien mukaan, Pandas tarjoaa intuitiivisia ja tehokkaita tapoja käsitellä tällaisia ​​toimintoja. Sukellaan yksityiskohtiin.

Komento Kuvaus
pd.DataFrame() Luo DataFrame-objektin sanakirjasta tai muista tietorakenteista.
df[condition] Suodattaa DataFrame-rivit ehdon perusteella ja palauttaa vain ne, jotka täyttävät ehdot.
print() Tulostaa määritetyn viestin tai DataFramen konsoliin.
df['column'] == value Luo loogisen sarjan, jota käytetään suodattamaan rivejä, joissa sarake vastaa määritettyä arvoa.
df['column'] >df['column'] > value Luo loogisen sarjan, jota käytetään suodattamaan rivejä, joissa sarakkeen arvot ovat suurempia kuin määritetty arvo.
# Comment Käytetään selitysten tai huomautusten lisäämiseen koodiin, joita ei suoriteta osana komentosarjaa.

DataFrame-rivien valinnan toteuttaminen Pandasissa

Toimitetuissa skripteissä tärkein tehtävä on suodattaa rivit DataFramesta tiettyjen sarakearvojen perusteella, mikä on yleinen vaatimus data-analyysissä. Ensimmäinen komentosarja alkaa tuomalla Pandas-kirjasto import pandas as pd. Tämä on välttämätöntä, koska Pandas on Pythonin tehokas tietojenkäsittelykirjasto. Seuraavaksi luomme esimerkki DataFramesta käyttämällä pd.DataFrame() sanakirjalla, joka sisältää tiedot nimistä, iästä ja kaupungeista. Tämän rakenteen avulla voimme helposti visualisoida ja käsitellä taulukkomuotoisia tietoja. Skriptin ratkaiseva osa on se, missä suodatamme rivejä käyttämällä df[df['city'] == 'New York']. Tämä komento valitsee kaikki rivit, joissa kaupunkisarakkeen arvo on "New York". Tulos tallennetaan muuttujaan ny_rows, joka sitten tulostetaan näyttämään suodatettu DataFrame.

Toinen komentosarja noudattaa samanlaista rakennetta, mutta keskittyy rivien suodattamiseen numeerisen ehdon perusteella. Kun Pandat on tuotu ja DataFrame luotu tuote-, hinta- ja määräsarakkeineen, komentosarja käyttää df[df['price'] > 150] suodattaa rivejä, joiden hinta on suurempi kuin 150. Tämä komento tuottaa alkuperäisen DataFramen osajoukon, joka sisältää vain määritetyn ehdon täyttävät rivit. Tulos tallennetaan expensive_products ja tulostettu tarkistusta varten. Molemmat skriptit osoittavat Pandan tehon ja yksinkertaisuuden tietojen käsittelyssä. Käyttämällä Boolen indeksointia, menetelmää, jossa välitämme sarjan tosi/epätosi arvoja tietojen suodattamiseksi, voimme tehokkaasti valita datan osajoukkoja eri olosuhteiden perusteella, mikä tekee siitä arvokkaan työkalun data-analyytikoille ja tutkijoille.

Rivien suodattaminen tietokehyksessä sarakearvojen perusteella

Python - Pandan käyttäminen DataFrame-toimintoihin

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-rivien kysely sarakearvojen perusteella

Python - Kehittynyt suodatus Pandalla

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

Kehittyneet tekniikat DataFrame-rivien valintaan

Perussuodatuksen ja boolen indeksoinnin lisäksi Pandas tarjoaa kehittyneempiä tekniikoita rivien valintaan sarakearvojen perusteella. Yksi tällainen menetelmä on query() toiminto, jonka avulla voit käyttää SQL:n kaltaista syntaksia DataFrame-rivien suodattamiseen. Voit esimerkiksi käyttää df.query('age > 25 and city == "New York"') valitaksesi rivit, joissa ikä on yli 25 ja kaupunki on New York. Tämä menetelmä voi tehdä koodistasi luettavamman, etenkin monimutkaisissa olosuhteissa. Lisäksi Pandas tarjoaa loc[] ja iloc[] lisävarusteet tarkempaan rivien valintaan. The loc[] accessor on nimiöpohjainen, mikä tarkoittaa, että voit suodattaa rivejä niiden otsikoiden tai loogisen taulukon perusteella. Sitä vastoin iloc[] accessor on kokonaislukusijaintiin perustuva, joten voit suodattaa rivejä niiden indeksipaikkojen mukaan.

Toinen Pandasin tehokas ominaisuus on kyky suodattaa DataFrame-rivejä käyttämällä isin() menetelmä. Tämä menetelmä on hyödyllinen, kun sinun on suodatettava rivejä arvoluettelon perusteella. Esimerkiksi, df[df['city'].isin(['New York', 'Los Angeles'])] valitsee rivit, joissa kaupunkisarakkeen arvo on joko New York tai Los Angeles. Lisäksi voit ketjuttaa useita ehtoja käyttämällä & ja | operaattorit voivat luoda monimutkaisempia suodattimia. Esimerkiksi, df[(df['age'] > 25) & (df['city'] == 'New York')] suodattaa rivit, joissa ikä on yli 25 ja kaupunki on New York. Nämä edistyneet tekniikat tarjoavat vankan kehyksen tietojen suodatukselle, mikä tekee Pandasta monipuolisen työkalun tietojen analysointiin ja käsittelyyn.

Yleisiä kysymyksiä DataFrame-rivien valitsemisesta Pandasissa

  1. Kuinka suodatan rivit DataFramessa useiden sarakearvojen perusteella?
  2. Voit käyttää boolen indeksointia useilla ehdoilla yhdistettynä käyttämällä & ja |. Esimerkiksi: df[(df['age'] > 25) & (df['city'] == 'New York')].
  3. Mitä eroa on loc[] ja iloc[]?
  4. loc[] on etikettipohjainen, kun taas iloc[] on kokonaislukusijaintiin perustuva. Käyttää loc[] suodatukseen tarrojen ja iloc[] suodatus indeksipaikkojen mukaan.
  5. Kuinka voin käyttää query() toiminto DataFrame-rivien suodattamiseen?
  6. The query() -toiminnon avulla voit käyttää SQL:n kaltaista syntaksia. Esimerkiksi: df.query('age > 25 and city == "New York"').
  7. Voinko suodattaa rivejä arvoluettelon perusteella?
  8. Kyllä, voit käyttää isin() menetelmä. Esimerkiksi: df[df['city'].isin(['New York', 'Los Angeles'])].
  9. Mikä on paras tapa suodattaa rivejä merkkijonovastaavuuden perusteella?
  10. Voit käyttää str.contains() menetelmä. Esimerkiksi: df[df['city'].str.contains('New')].
  11. Kuinka valitsen rivit, joista puuttuu sarakearvot?
  12. Voit käyttää isna() menetelmä. Esimerkiksi: df[df['age'].isna()].
  13. Kuinka voin suodattaa rivejä mukautetulla funktiolla?
  14. Voit käyttää apply() menetelmä lambda-toiminnolla. Esimerkiksi: df[df.apply(lambda row: row['age'] > 25, axis=1)].
  15. Voinko suodattaa rivejä indeksiarvojen perusteella?
  16. Kyllä, voit käyttää index.isin() menetelmä. Esimerkiksi: df[df.index.isin([1, 3, 5])].

Tärkeimmät tiedot DataFrame-rivien valinnasta

Rivien valitseminen DataFrame-kehyksestä sarakearvojen perusteella on perustaito Pandasin tietojen analysoinnissa. Boolen indeksointia hyödyntäen, loc[], iloc[], query(), ja isin() menetelmät mahdollistavat tehokkaan tietojen suodatuksen. Näiden tekniikoiden hallitseminen parantaa kykyäsi käsitellä ja analysoida tietojoukkoja tehokkaasti.