DataFrame rindu atlase, pamatojoties uz kolonnu vērtībām Python

DataFrame rindu atlase, pamatojoties uz kolonnu vērtībām Python
Python

Pandas izmantošana datu rāmju filtrēšanai pēc kolonnu vērtībām

Strādājot ar datiem programmā Python, Pandas bibliotēka piedāvā jaudīgus rīkus datu manipulēšanai un analīzei. Viens izplatīts uzdevums ir rindu atlase no DataFrame, pamatojoties uz vērtībām noteiktā kolonnā. Šī darbība ir līdzīga SQL vaicājumam: SELECT * FROM tabula WHERE kolonnas_nosaukums = some_value.

Šajā rakstā mēs izpētīsim, kā to panākt Pandās, izmantojot dažādas metodes. Neatkarīgi no tā, vai filtrējat pēc vienas vērtības vai vairākiem kritērijiem, Pandas nodrošina intuitīvus un efektīvus veidus, kā rīkoties ar šādām darbībām. Iedziļināsimies detaļās.

Pavēli Apraksts
pd.DataFrame() Izveido DataFrame objektu no vārdnīcas vai citām datu struktūrām.
df[condition] Filtrē DataFrame rindas, pamatojoties uz nosacījumu, atgriežot tikai tās, kas atbilst kritērijiem.
print() Izvada norādīto ziņojumu vai DataFrame konsolei.
df['column'] == value Izveido Būla sēriju, ko izmanto, lai filtrētu rindas, kurās kolonna atbilst norādītajai vērtībai.
df['column'] >df['column'] > value Izveido Būla sēriju, ko izmanto, lai filtrētu rindas, kurās kolonnu vērtības ir lielākas par norādīto vērtību.
# Comment Izmanto, lai kodā pievienotu paskaidrojumus vai piezīmes, kas netiek izpildītas kā daļa no skripta.

DataFrame rindu atlases ieviešana programmā Pandas

Piedāvātajos skriptos galvenais uzdevums ir filtrēt rindas no DataFrame, pamatojoties uz konkrētām kolonnu vērtībām, kas ir izplatīta prasība datu analīzē. Pirmais skripts sākas, importējot Pandas bibliotēku ar import pandas as pd. Tas ir būtiski, jo Pandas ir jaudīga Python datu manipulācijas bibliotēka. Tālāk mēs izveidojam DataFrame paraugu, izmantojot pd.DataFrame() ar vārdnīcu, kurā ir dati par vārdiem, vecumiem un pilsētām. Šī struktūra ļauj mums viegli vizualizēt un manipulēt ar tabulas datiem. Izšķirošā skripta daļa ir vieta, kur mēs filtrējam rindas df[df['city'] == 'New York']. Šī komanda atlasa visas rindas, kurās pilsētas kolonnas vērtība ir "Ņujorka". Rezultāts tiek saglabāts mainīgajā ny_rows, kas pēc tam tiek izdrukāts, lai parādītu filtrēto DataFrame.

Otrais skripts seko līdzīgai struktūrai, bet koncentrējas uz rindu filtrēšanu, pamatojoties uz skaitlisku nosacījumu. Pēc Pandas importēšanas un DataFrame izveides ar produkta, cenas un daudzuma kolonnām skripts izmanto df[df['price'] > 150] lai filtrētu rindas, kurās cena ir lielāka par 150. Šī komanda izveido sākotnējā DataFrame apakškopu, kurā ir tikai tās rindas, kas atbilst norādītajam nosacījumam. Rezultāts tiek saglabāts expensive_products un izdrukāts pārbaudei. Abi skripti demonstrē Pandas jaudu un vienkāršību datu manipulēšanai. Izmantojot Būla indeksēšanu — metodi, kurā mēs nododam patiesu/nepatiesu vērtību sēriju, lai filtrētu datus, mēs varam efektīvi atlasīt datu apakškopas, pamatojoties uz dažādiem nosacījumiem, padarot to par nenovērtējamu rīku datu analītiķiem un zinātniekiem.

Rindu filtrēšana datu rāmī, pamatojoties uz kolonnu vērtībām

Python — Pandas izmantošana DataFrame operācijām

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 rindu vaicājumi, pamatojoties uz kolonnu vērtībām

Python — uzlabota filtrēšana ar pandām

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

Uzlabotas metodes DataFrame rindu atlasei

Papildus pamata filtrēšanai ar Būla indeksēšanu, Pandas piedāvā uzlabotas metodes rindu atlasei, pamatojoties uz kolonnu vērtībām. Viena no šādām metodēm ir query() funkcija, kas ļauj izmantot SQL līdzīgu sintaksi, lai filtrētu DataFrame rindas. Piemēram, jūs varat izmantot df.query('age > 25 and city == "New York"') lai atlasītu rindas, kurās vecums ir lielāks par 25 gadiem un pilsēta ir Ņujorka. Šī metode var padarīt jūsu kodu lasāmāku, īpaši sarežģītos apstākļos. Turklāt Pandas nodrošina loc[] un iloc[] piederumi precīzākai rindu izvēlei. The loc[] Accessor ir balstīts uz etiķetēm, kas nozīmē, ka varat filtrēt rindas pēc to etiķetēm vai Būla masīva. Turpretim, iloc[] Piekļuvējs ir balstīts uz veselu skaitļu pozīciju, ļaujot filtrēt rindas pēc to indeksa pozīcijām.

Vēl viena jaudīga Pandas funkcija ir iespēja filtrēt DataFrame rindas, izmantojot isin() metodi. Šī metode ir noderīga, ja jāfiltrē rindas, pamatojoties uz vērtību sarakstu. Piemēram, df[df['city'].isin(['New York', 'Los Angeles'])] atlasa rindas, kurās pilsētas kolonnas vērtība ir Ņujorka vai Losandželosa. Turklāt jūs varat ķēdīt vairākus nosacījumus, izmantojot & un | operatoriem, lai izveidotu sarežģītākus filtrus. Piemēram, df[(df['age'] > 25) & (df['city'] == 'New York')] filtrē rindas, kurās vecums ir lielāks par 25 gadiem un pilsēta ir Ņujorka. Šīs uzlabotās metodes nodrošina stabilu datu filtrēšanas sistēmu, padarot Pandas par daudzpusīgu rīku datu analīzei un manipulācijām.

Bieži uzdotie jautājumi par DataFrame rindu atlasi programmā Pandas

  1. Kā filtrēt rindas DataFrame, pamatojoties uz vairākām kolonnu vērtībām?
  2. Varat izmantot Būla indeksēšanu, apvienojot vairākus nosacījumus, izmantojot & un |. Piemēram: df[(df['age'] > 25) & (df['city'] == 'New York')].
  3. Kāda ir atšķirība starp loc[] un iloc[]?
  4. loc[] ir uz etiķetes balstīta, bet iloc[] ir balstīta uz veselu skaitļu pozīciju. Izmantot loc[] filtrēšanai pēc etiķetēm un iloc[] filtrēšanai pēc indeksa pozīcijām.
  5. Kā es varu izmantot query() funkcija DataFrame rindu filtrēšanai?
  6. The query() funkcija ļauj izmantot SQL līdzīgu sintaksi. Piemēram: df.query('age > 25 and city == "New York"').
  7. Vai es varu filtrēt rindas, pamatojoties uz vērtību sarakstu?
  8. Jā, jūs varat izmantot isin() metodi. Piemēram: df[df['city'].isin(['New York', 'Los Angeles'])].
  9. Kāds ir labākais veids, kā filtrēt rindas, pamatojoties uz virkņu atbilstību?
  10. Jūs varat izmantot str.contains() metodi. Piemēram: df[df['city'].str.contains('New')].
  11. Kā atlasīt rindas, kurās trūkst kolonnu vērtību?
  12. Jūs varat izmantot isna() metodi. Piemēram: df[df['age'].isna()].
  13. Kā es varu filtrēt rindas, izmantojot pielāgotu funkciju?
  14. Jūs varat izmantot apply() metode ar lambda funkciju. Piemēram: df[df.apply(lambda row: row['age'] > 25, axis=1)].
  15. Vai es varu filtrēt rindas, pamatojoties uz indeksa vērtībām?
  16. Jā, jūs varat izmantot index.isin() metodi. Piemēram: df[df.index.isin([1, 3, 5])].

Galvenās DataFrame rindu izvēles iespējas

Rindu atlase no DataFrame, pamatojoties uz kolonnu vērtībām, ir pamatprasme datu analīzē ar Pandas. Būla indeksēšanas izmantošana, loc[], iloc[], query(), un isin() metodes ļauj efektīvi filtrēt datus. Šo metožu apgūšana uzlabo jūsu spēju efektīvi manipulēt un analizēt datu kopas.