Sorok szűrése egy Pandas DataFrame-ben oszlopértékek alapján

Temp mail SuperHeros
Sorok szűrése egy Pandas DataFrame-ben oszlopértékek alapján
Sorok szűrése egy Pandas DataFrame-ben oszlopértékek alapján

Sorok szűrése a Pandas DataFramesben

A Pandas egy hatékony könyvtár a Pythonban az adatok manipulálására és elemzésére. Gyakori feladat a sorok kiválasztása a DataFrame-ből oszlopértékek alapján, hasonlóan az SQL SELECT * FROM táblájához, WHERE oszlopnév = valami_érték.

Ez az útmutató végigvezeti Önt a különböző módszereken, amelyek segítségével ezt a Pandasban elérheti, megkönnyítve az adatok hatékony szűrését. Akár kezdő, akár tapasztalt felhasználó, ezek a tippek fejlesztik adatkezelési készségeit.

Parancs Leírás
pd.DataFrame(data) DataFrame-et hoz létre egy adatszótárból.
df[column_name] Név szerint ér el egy oszlopot a DataFrame-ben.
df[condition] Szűri a DataFrame-et egy oszlopra alkalmazott feltétel alapján.
print(selected_rows) Kinyomtatja a DataFrame-et vagy annak egy részét a konzolra.
df[df['Age'] >df[df['Age'] > 25] Kijelöli azokat a sorokat, ahol az „Életkor” oszlop értéke nagyobb, mint 25.
df[df['City'] == 'Chicago'] Válassza ki azokat a sorokat, amelyekben a „Város” oszlop értéke megegyezik a „Chicago” értékkel.

A DataFrame sorkiválasztás megértése a Pandasban

A mellékelt szkriptek bemutatják, hogyan válasszunk ki sorokat egy DataFrame-ből oszlopértékek alapján a Python Pandas könyvtárának használatával. Az első szkript a Pandas könyvtár importálásával kezdődik a import pandas as pd parancs. Ezután egy adatszótár segítségével egy minta DataFrame-et hoz létre, amelyet DataFrame-mé konvertál pd.DataFrame(data) parancs. A szkript ezután két módszert szemléltet a sorkiválasztáshoz: olyan sorok kijelölése, amelyekben az „Életkor” oszlop értéke nagyobb, mint 25 df[df['Age'] > 25], és válassza ki azokat a sorokat, ahol a „Város” oszlop értéke „Chicago” a következő használatával df[df['City'] == 'Chicago']. Ezeket a szűrt DataFrame-eket a rendszer a print() funkció a kiválasztott sorok megjelenítéséhez.

A második szkript hasonló szerkezetet követ, de eltérő adatokat és kiválasztási kritériumokat használ. Létrehoz egy DataFrame-et termékinformációkkal, beleértve a „Termék”, „Ár” és „Készlet” oszlopokat. A rendszer olyan sorokat jelöl ki, ahol az „Ár” kisebb vagy egyenlő, mint 200 df[df['Price'] <= 200], és ahol a „készlet” több mint 40 használ df[df['Stock'] > 40]. Ezeknek a szkripteknek az a célja, hogy megmutassák, hogyan lehet a DataFrame-sorokat speciális feltételek alapján szűrni, hasonlóan ahhoz, ahogyan egy SQL-lekérdezést használna a táblázat sorainak oszlopérték alapján történő kiválasztásához. Ezen parancsok megértésével és alkalmazásával hatékonyan kezelheti és elemezheti a DataFrame-ekben lévő adatokat.

Sorok kiválasztása egy adatkeretben oszlopértékek használatával a Pandasban

Python a Pandas könyvtárral

# Importing the necessary library
import pandas as pd

# Creating a sample DataFrame
data = {
    'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
    'Age': [24, 27, 22, 32, 29],
    'City': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix']
}
df = pd.DataFrame(data)

# Selecting rows where Age is greater than 25
selected_rows = df[df['Age'] > 25]
print(selected_rows)

# Selecting rows where City is 'Chicago'
chicago_rows = df[df['City'] == 'Chicago']
print(chicago_rows)

Adatok szűrése egy DataFrame-ben oszlopkritériumok alapján

Python a Pandas könyvtárral

# Importing pandas library
import pandas as pd

# Creating a sample DataFrame
data = {'Product': ['A', 'B', 'C', 'D', 'E'],
        'Price': [100, 150, 200, 250, 300],
        'Stock': [30, 60, 90, 20, 50]}
df = pd.DataFrame(data)

# Selecting rows where Price is less than or equal to 200
affordable_products = df[df['Price'] <= 200]
print(affordable_products)

# Selecting rows where Stock is more than 40
in_stock = df[df['Stock'] > 40]
print(in_stock)

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

A logikai indexelést használó alapvető szűrés mellett a Pandas fejlett technikákat kínál a sorok oszlopértékek alapján történő kiválasztásához. Az egyik hatékony módszer a query() funkció, amely lehetővé teszi a sorok szűrését egy lekérdezési kifejezéssel, így a szintaxis tisztább és gyakran intuitívabb. Például használat helyett df[df['Age'] > 25], tudsz írni df.query('Age > 25'). Ez a módszer különösen akkor hasznos, ha összetettebb feltételekkel foglalkozik, vagy ha az oszlopnevek szóközt tartalmaznak. Ezenkívül a isin() függvény akkor hasznos, ha értéklista alapján szeretné szűrni a sorokat. Például olyan sorok kiválasztásához, ahol a „Város” oszlop értéke „Chicago” vagy „New York”, használhatja df[df['City'].isin(['Chicago', 'New York'])].

Egy másik technika magában foglalja a loc és iloc indexelők. A loc Az indexelő címke alapú, lehetővé téve a sorok címkék és oszlopnevek alapján történő kiválasztását, míg iloc egész hely alapú, lehetővé téve a sor- és oszlopszám szerinti kijelölést. Ez a rugalmasság különösen hasznos sorok kiválasztásához egy másik oszlopra alkalmazott feltétel alapján. Például, df.loc[df['Age'] > 25, 'Name'] A 25 évnél idősebb személyek nevét adja vissza. Ezek a módszerek kibővítik az eszköztárat a Pandas adatok hatékony kezelésére és elemzésére, olvashatóbb és karbantartható kódot kínálva.

Gyakori kérdések és válaszok a DataFrame sorok kiválasztásával kapcsolatban

  1. Hogyan választhatok ki sorokat több feltétel alapján?
  2. Használhatja a query() függvényt, vagy kombinálja a feltételeket olyan logikai operátorokkal, mint pl & és |. Például, df[(df['Age'] > 25) & (df['City'] == 'Chicago')].
  3. Szűrhetem a sorokat értéklista alapján?
  4. Igen, használja a isin() funkció. Például, df[df['City'].isin(['Chicago', 'New York'])].
  5. Mi a különbség loc és iloc?
  6. loc címke alapú, míg iloc egész hely alapú. Használat loc sor/oszlop címkékkel és iloc sor/oszlop indexekkel.
  7. Hogyan választhatok ki bizonyos oszlopokat a sorok szűrése közben?
  8. Te tudod használni loc. Például, df.loc[df['Age'] > 25, ['Name', 'City']].
  9. Hogyan kezelhetem a hiányzó értékeket a sorok kiválasztásakor?
  10. Használja a dropna() függvény a hiányzó értékeket tartalmazó sorok eltávolításához, vagy fillna() hogy lecserélje őket egy meghatározott értékre.
  11. Használhatok reguláris kifejezéseket a sorok szűrésére?
  12. Igen, a str.contains() funkciót a regex=True paraméter lehetővé teszi a sorok szűrését regex minták alapján. Például, df[df['Name'].str.contains('^A', regex=True)].
  13. Hogyan szűrhetem a sorokat az index alapján?
  14. Te tudod használni loc az index nevével. Például, df.loc[df.index == 'some_index'].
  15. Mi a teendő, ha az oszlopneveim szóközöket vagy speciális karaktereket tartalmaznak?
  16. Használja a query() függvény, amely képes kezelni az ilyen oszlopneveket backtickekkel. Például, df.query('`column name` == value').

Utolsó gondolatok a DataFrame sorkiválasztási technikákról

A sorok kiválasztása a DataFrame-ből az oszlopértékek alapján a Pandasban az adatkezelés kulcsfontosságú készsége. A tárgyalt különféle módszerek, beleértve a logikai indexelést, query(), isin(), valamint címke alapú és egész hely alapú indexelés loc és iloc, hatékony eszközöket biztosítanak az adatok hatékony szűréséhez. E technikák elsajátítása jobb adatelemzést és tisztább, karbantarthatóbb kódot tesz lehetővé.