„DataFrame“ eilučių pasirinkimas pagal „Python“ stulpelių reikšmes

„DataFrame“ eilučių pasirinkimas pagal „Python“ stulpelių reikšmes
Python

Pandos naudojimas duomenų rėmams filtruoti pagal stulpelių reikšmes

Dirbant su duomenimis Python, Pandas biblioteka siūlo galingus duomenų apdorojimo ir analizės įrankius. Viena dažna užduotis yra eilučių iš DataFrame pasirinkimas pagal konkretaus stulpelio reikšmes. Ši operacija yra panaši į SQL užklausą: SELECT * FROM lentelės WHERE stulpelio_pavadinimas = some_value.

Šiame straipsnyje mes išnagrinėsime, kaip tai pasiekti Pandos naudojant įvairius metodus. Nesvarbu, ar filtruojate pagal vieną reikšmę, ar kelis kriterijus, „Pandas“ siūlo intuityvius ir efektyvius būdus tokioms operacijoms atlikti. Pasinerkime į smulkmenas.

komandą apibūdinimas
pd.DataFrame() Sukuria DataFrame objektą iš žodyno ar kitų duomenų struktūrų.
df[condition] Filtruoja DataFrame eilutes pagal sąlygą ir pateikia tik tas, kurios atitinka kriterijus.
print() Išveda nurodytą pranešimą arba DataFrame į konsolę.
df['column'] == value Sukuriama loginė serija, naudojama filtruoti eilutes, kuriose stulpelis atitinka nurodytą reikšmę.
df['column'] >df['column'] > value Sukuriama loginė serija, naudojama filtruoti eilutes, kuriose stulpelių reikšmės yra didesnės už nurodytą reikšmę.
# Comment Naudojamas paaiškinimams ar pastaboms pridėti prie kodo, kurie nėra vykdomi kaip scenarijaus dalis.

„DataFrame“ eilučių pasirinkimo įgyvendinimas „Pandas“.

Pateiktuose scenarijuose pagrindinė užduotis yra filtruoti eilutes iš DataFrame pagal konkrečias stulpelių reikšmes – įprastas duomenų analizės reikalavimas. Pirmasis scenarijus prasideda importuojant Pandas biblioteką su import pandas as pd. Tai būtina, nes „Pandas“ yra galinga „Python“ duomenų apdorojimo biblioteka. Tada mes sukuriame pavyzdinį DataFrame naudodami pd.DataFrame() su žodynu, kuriame yra vardų, amžių ir miestų duomenys. Ši struktūra leidžia mums lengvai vizualizuoti ir valdyti lentelių duomenis. Esminė scenarijaus dalis yra tai, kur mes filtruojame eilutes df[df['city'] == 'New York']. Šia komanda pasirenkamos visos eilutės, kuriose miesto stulpelio reikšmė yra „Niujorkas“. Rezultatas išsaugomas kintamajame ny_rows, kuris tada atspausdinamas, kad būtų rodomas filtruotas duomenų rėmelis.

Antrasis scenarijus vadovaujasi panašia struktūra, tačiau pagrindinis dėmesys skiriamas eilučių filtravimui pagal skaitinę sąlygą. Importavus Pandas ir sukūrus DataFrame su produkto, kainos ir kiekio stulpeliais, scenarijus naudoja df[df['price'] > 150] filtruoti eilutes, kuriose kaina didesnė nei 150. Ši komanda sukuria pradinio duomenų rėmelio poaibį, kuriame yra tik nurodytas sąlygas atitinkančios eilutės. Rezultatas saugomas expensive_products ir atspausdintas patikrinimui. Abu scenarijai demonstruoja Pandos galią ir paprastumą manipuliuojant duomenimis. Naudodami loginį indeksavimą – metodą, kai perduodame teisingų / klaidingų reikšmių seriją duomenims filtruoti, galime efektyviai pasirinkti duomenų poaibius pagal įvairias sąlygas, todėl tai yra neįkainojamas įrankis duomenų analitikams ir mokslininkams.

Eilučių filtravimas duomenų rėmelyje pagal stulpelių reikšmes

Python – Pandas naudojimas DataFrame operacijoms

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“ eilučių užklausa pagal stulpelių reikšmes

Python – išplėstinis filtravimas su pandomis

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

Pažangūs „DataFrame“ eilučių pasirinkimo metodai

Be pagrindinio filtravimo su loginiu indeksavimu, „Pandas“ siūlo pažangesnius metodus, skirtus eilėms pasirinkti pagal stulpelių reikšmes. Vienas iš tokių metodų yra query() funkcija, leidžianti naudoti į SQL panašią sintaksę filtruojant DataFrame eilutes. Pavyzdžiui, galite naudoti df.query('age > 25 and city == "New York"') pasirinkti eilutes, kuriose amžius didesnis nei 25 m., o miestas yra Niujorkas. Šis metodas gali padaryti jūsų kodą skaitomesnį, ypač sudėtingomis sąlygomis. Be to, Pandas teikia loc[] ir iloc[] priedai tikslesniam eilių pasirinkimui. The loc[] Accessor yra pagrįstas etiketėmis, tai reiškia, kad galite filtruoti eilutes pagal jų etiketes arba loginį masyvą. Priešingai, iloc[] Priedas yra pagrįstas sveikaisiais skaičiais, todėl galite filtruoti eilutes pagal jų indekso pozicijas.

Kita galinga Pandas funkcija yra galimybė filtruoti DataFrame eilutes naudojant isin() metodas. Šis metodas yra naudingas, kai reikia filtruoti eilutes pagal reikšmių sąrašą. Pavyzdžiui, df[df['city'].isin(['New York', 'Los Angeles'])] pasirenka eilutes, kuriose miesto stulpelio reikšmė yra Niujorkas arba Los Andželas. Be to, galite sujungti kelias sąlygas naudodami & ir | operatoriams sukurti sudėtingesnius filtrus. Pavyzdžiui, df[(df['age'] > 25) & (df['city'] == 'New York')] filtruoja eilutes, kuriose amžius didesnis nei 25 m., o miestas yra Niujorkas. Šie pažangūs metodai suteikia tvirtą duomenų filtravimo sistemą, todėl Pandas yra universalus duomenų analizės ir manipuliavimo įrankis.

Dažni klausimai apie „DataFrame“ eilučių pasirinkimą „Pandas“.

  1. Kaip filtruoti DataFrame eilutes pagal kelias stulpelių reikšmes?
  2. Galite naudoti loginį indeksavimą su keliomis sąlygomis & ir |. Pavyzdžiui: df[(df['age'] > 25) & (df['city'] == 'New York')].
  3. Koks skirtumas tarp loc[] ir iloc[]?
  4. loc[] yra pagrįstas etiketėmis, o iloc[] yra paremtas sveikaisiais skaičiais. Naudokite loc[] filtravimui pagal etiketes ir iloc[] filtravimui pagal indekso pozicijas.
  5. Kaip galiu naudoti query() funkcija filtruoti DataFrame eilutes?
  6. The query() funkcija leidžia naudoti į SQL panašią sintaksę. Pavyzdžiui: df.query('age > 25 and city == "New York"').
  7. Ar galiu filtruoti eilutes pagal reikšmių sąrašą?
  8. Taip, galite naudoti isin() metodas. Pavyzdžiui: df[df['city'].isin(['New York', 'Los Angeles'])].
  9. Koks yra geriausias būdas filtruoti eilutes pagal eilučių atitikimą?
  10. Galite naudoti str.contains() metodas. Pavyzdžiui: df[df['city'].str.contains('New')].
  11. Kaip pasirinkti eilutes, kuriose trūksta stulpelių reikšmių?
  12. Galite naudoti isna() metodas. Pavyzdžiui: df[df['age'].isna()].
  13. Kaip galiu filtruoti eilutes naudojant pasirinktinę funkciją?
  14. Galite naudoti apply() metodas su lambda funkcija. Pavyzdžiui: df[df.apply(lambda row: row['age'] > 25, axis=1)].
  15. Ar galiu filtruoti eilutes pagal indekso reikšmes?
  16. Taip, galite naudoti index.isin() metodas. Pavyzdžiui: df[df.index.isin([1, 3, 5])].

Pagrindiniai „DataFrame“ eilutės pasirinkimo aspektai

Eilučių pasirinkimas iš „DataFrame“ pagal stulpelių reikšmes yra pagrindinis „Panda“ duomenų analizės įgūdis. Būlio indeksavimo naudojimas, loc[], iloc[], query(), ir isin() metodai leidžia efektyviai filtruoti duomenis. Šių metodų įvaldymas pagerina jūsų gebėjimą efektyviai manipuliuoti ir analizuoti duomenų rinkinius.