DataFrame-sorok kiválasztása oszlopértékek alapján a Pythonban

DataFrame-sorok kiválasztása oszlopértékek alapján a Pythonban
Python

Pandák használata adatkeretek szűrésére oszlopértékek alapján

Amikor Pythonban dolgozik adatokkal, a Pandas könyvtár hatékony eszközöket kínál az adatok manipulálásához és elemzéséhez. Az egyik gyakori feladat a sorok kiválasztása a DataFrame-ből egy adott oszlop értékei alapján. Ez a művelet hasonló az SQL lekérdezéshez: SELECT * FROM tábla WHERE oszlopnév = valami_érték.

Ebben a cikkben megvizsgáljuk, hogyan érhetjük el ezt a Pandákban különféle módszerekkel. Akár egyetlen érték, akár több kritérium alapján szűr, a Pandas intuitív és hatékony módszereket kínál az ilyen műveletek kezelésére. Merüljünk el a részletekben.

Parancs Leírás
pd.DataFrame() DataFrame objektumot hoz létre egy szótárból vagy más adatstruktúrákból.
df[condition] Egy feltétel alapján szűri a DataFrame sorokat, és csak azokat adja vissza, amelyek megfelelnek a feltételeknek.
print() Kiírja a megadott üzenetet vagy DataFrame-et a konzolra.
df['column'] == value Logikai sorozatot hoz létre, amely azon sorok szűrésére szolgál, ahol az oszlop megegyezik a megadott értékkel.
df['column'] >df['column'] > value Logikai sorozatot hoz létre, amely azon sorok szűrésére szolgál, ahol az oszlopértékek nagyobbak a megadott értéknél.
# Comment Magyarázatok vagy megjegyzések hozzáadására szolgál a kódon belül, amelyek nem a szkript részeként kerülnek végrehajtásra.

A DataFrame sorkiválasztás megvalósítása a Pandasban

A megadott szkriptekben a legfontosabb feladat a sorok kiszűrése egy DataFrame-ből meghatározott oszlopértékek alapján, ami általános követelmény az adatelemzésben. Az első szkript a Pandas könyvtár importálásával kezdődik import pandas as pd. Ez elengedhetetlen, mivel a Pandas egy hatékony adatkezelési könyvtár a Pythonban. Ezután létrehozunk egy minta DataFrame-et a használatával pd.DataFrame() nevekre, korokra és városokra vonatkozó adatokat tartalmazó szótárral. Ez a struktúra lehetővé teszi számunkra, hogy könnyen megjelenítsük és kezeljük a táblázatos adatokat. A szkript döntő része az, ahol a sorokat szűrjük df[df['city'] == 'New York']. Ez a parancs kijelöli az összes olyan sort, ahol a város oszlop értéke „New York”. Az eredmény a változóban tárolódik ny_rows, amelyet ezután kinyomtat a szűrt DataFrame megjelenítéséhez.

A második szkript hasonló szerkezetet követ, de a sorok numerikus feltétel alapján történő szűrésére összpontosít. A Pandák importálása és a termék, ár és mennyiség oszlopokkal rendelkező DataFrame létrehozása után a szkript ezt használja df[df['price'] > 150] a 150-nél nagyobb árú sorok szűrésére. Ez a parancs létrehozza az eredeti DataFrame egy részhalmazát, amely csak a megadott feltételnek megfelelő sorokat tartalmazza. Az eredmény tárolásra kerül expensive_products és ellenőrzés céljából kinyomtatták. Mindkét szkript bemutatja a Pandák képességét és egyszerűségét az adatkezelésben. A logikai indexeléssel, amely módszerrel igaz/hamis értékek sorozatát adjuk át az adatok szűrésére, hatékonyan választhatjuk ki az adatok részhalmazait különböző feltételek alapján, így ez felbecsülhetetlen értékű eszköz az adatelemzők és tudósok számára.

Sorok szűrése egy adatkeretben oszlopértékek alapján

Python – Panda használata DataFrame műveletekhez

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 sorok lekérdezése oszlopértékek alapján

Python – Speciális szűrés Pandákkal

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

Speciális technikák a DataFrame sorok kiválasztásához

A logikai indexeléssel rendelkező alapszűrés mellett a Pandas fejlettebb technikákat kínál a sorok oszlopértékek alapján történő kiválasztásához. Az egyik ilyen módszer a query() függvény, amely lehetővé teszi az SQL-szerű szintaxis használatát a DataFrame sorok szűrésére. Például használhatja df.query('age > 25 and city == "New York"') olyan sorok kiválasztásához, ahol az életkor több mint 25 év, és a város New York. Ezzel a módszerrel olvashatóbbá teheti a kódot, különösen összetett feltételek esetén. Ezenkívül a Pandas biztosítja a loc[] és iloc[] kiegészítők a pontosabb sorkiválasztás érdekében. A loc[] Az accessor címke alapú, ami azt jelenti, hogy a sorokat címkéik vagy logikai tömb alapján szűrheti. Ezzel szemben a iloc[] Az accessor egész számok pozíció alapú, lehetővé téve a sorok indexpozíciójuk szerinti szűrését.

A Pandas másik hatékony funkciója a DataFrame sorok szűrésének képessége a isin() módszer. Ez a módszer akkor hasznos, ha értéklista alapján kell szűrnie a sorokat. Például, df[df['city'].isin(['New York', 'Los Angeles'])] kiválasztja azokat a sorokat, ahol a város oszlop értéke New York vagy Los Angeles. Ezenkívül több feltételt is láncolhat a segítségével & és | operátorokat, hogy bonyolultabb szűrőket hozzanak létre. Például, df[(df['age'] > 25) & (df['city'] == 'New York')] szűri azokat a sorokat, ahol az életkor meghaladja a 25-öt, és a város New York. Ezek a fejlett technikák robusztus keretet biztosítanak az adatszűréshez, így a Pandas az adatelemzés és -manipuláció sokoldalú eszközévé válik.

Gyakori kérdések a DataFrame sorok kiválasztásával kapcsolatban a Pandas programban

  1. Hogyan szűrhetek sorokat egy DataFrame-ben több oszlopérték alapján?
  2. Használhat logikai indexelést több feltétel együttes használatával & és |. Például: df[(df['age'] > 25) & (df['city'] == 'New York')].
  3. Mi a különbség loc[] és iloc[]?
  4. loc[] címke alapú, míg iloc[] egész pozíció alapú. Használat loc[] címkék szerinti szűréshez és iloc[] indexpozíciók szerinti szűréshez.
  5. Hogyan használhatom a query() függvény a DataFrame sorok szűrésére?
  6. A query() funkció lehetővé teszi az SQL-szerű szintaxis használatát. Például: df.query('age > 25 and city == "New York"').
  7. Szűrhetem a sorokat értéklista alapján?
  8. Igen, használhatod a isin() módszer. Például: df[df['city'].isin(['New York', 'Los Angeles'])].
  9. Mi a legjobb módja a sorok szűrésének karakterláncillesztés alapján?
  10. Használhatja a str.contains() módszer. Például: df[df['city'].str.contains('New')].
  11. Hogyan választhatok ki olyan sorokat, amelyekből hiányoznak az oszlopértékek?
  12. Használhatja a isna() módszer. Például: df[df['age'].isna()].
  13. Hogyan szűrhetek sorokat egyéni függvény segítségével?
  14. Használhatja a apply() módszer lambda funkcióval. Például: df[df.apply(lambda row: row['age'] > 25, axis=1)].
  15. Szűrhetem a sorokat indexértékek alapján?
  16. Igen, használhatod a index.isin() módszer. Például: df[df.index.isin([1, 3, 5])].

A DataFrame sorválasztás legfontosabb tudnivalói

A sorok kiválasztása a DataFrame-ből oszlopértékek alapján alapvető készség a Pandas adatelemzésében. Logikai indexelést használva, loc[], iloc[], query(), és isin() módszerek hatékony adatszűrést tesznek lehetővé. Ezen technikák elsajátítása javítja az adatkészletek hatékony kezelésének és elemzésének képességét.