Filtrovanie riadkov v dátových rámcoch Pandas
Pandas je výkonná knižnica v Pythone na manipuláciu a analýzu údajov. Bežnou úlohou je výber riadkov z DataFrame na základe hodnôt stĺpcov, podobne ako v SQL tabuľke SELECT * FROM WHERE názov_stĺpca = nejaká_hodnota.
Táto príručka vás prevedie rôznymi metódami, ako to dosiahnuť v službe Pandas, čím vám uľahčí efektívne filtrovanie údajov. Či už ste začiatočník alebo skúsený používateľ, tieto tipy rozšíria vaše zručnosti pri práci s údajmi.
Príkaz | Popis |
---|---|
pd.DataFrame(data) | Vytvorí DataFrame zo slovníka údajov. |
df[column_name] | Pristupuje k stĺpcu v DataFrame podľa názvu. |
df[condition] | Filtruje DataFrame na základe podmienky aplikovanej na stĺpec. |
print(selected_rows) | Vytlačí DataFrame alebo jeho podmnožinu do konzoly. |
df[df['Age'] >df[df['Age'] > 25] | Vyberie riadky, v ktorých sú hodnoty stĺpca „Vek“ väčšie ako 25. |
df[df['City'] == 'Chicago'] | Vyberie riadky, v ktorých sa hodnoty stĺpca „Mesto“ rovnajú hodnote „Chicago“. |
Pochopenie výberu riadkov dátového rámca v Pandas
Poskytnuté skripty demonštrujú, ako vybrať riadky z DataFrame na základe hodnôt stĺpcov pomocou knižnice Pandas v Pythone. Prvý skript začína importovaním knižnice Pandas s import pandas as pd príkaz. Potom vytvorí vzorový DataFrame pomocou slovníka údajov, ktorý sa skonvertuje na DataFrame s pd.DataFrame(data) príkaz. Skript potom ilustruje dve metódy výberu riadkov: výber riadkov, v ktorých je hodnota stĺpca „Vek“ väčšia ako 25 pomocou df[df['Age'] > 25]a výberom riadkov, v ktorých má stĺpec „Mesto“ hodnotu „Chicago“. df[df['City'] == 'Chicago']. Tieto filtrované dátové rámce sú vytlačené pomocou print() funkcia na zobrazenie vybraných riadkov.
Druhý skript má podobnú štruktúru, ale používa iné údaje a výberové kritériá. Vytvára DataFrame s informáciami o produkte, vrátane stĺpcov 'Produkt', 'Cena' a 'Stock'. Vyberajú sa riadky, kde je „Cena“ menšia alebo rovná 200 s df[df['Price'] <= 200], a kde je 'Stock' viac ako 40 s použitím df[df['Stock'] > 40]. Účelom týchto skriptov je ukázať, ako filtrovať riadky DataFrame na základe špecifických podmienok, podobne ako by ste použili dotaz SQL na výber riadkov z tabuľky na základe hodnoty stĺpca. Pochopením a použitím týchto príkazov môžete efektívne manipulovať a analyzovať údaje vo vašich dátových rámcoch.
Výber riadkov v dátovom rámci pomocou hodnôt stĺpcov v Pandas
Python s knižnicou Pandas
# 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)
Filtrovanie údajov v dátovom rámci na základe stĺpcových kritérií
Python s knižnicou Pandas
# 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)
Pokročilé techniky na výber riadkov dátových rámcov v Pandas
Okrem základného filtrovania pomocou boolovského indexovania ponúka Pandas pokročilé techniky výberu riadkov na základe hodnôt stĺpcov. Jednou mocnou metódou je použitie query() funkcia, ktorá vám umožňuje filtrovať riadky pomocou výrazu dotazu, vďaka čomu je syntax čistejšia a často intuitívnejšia. Napríklad namiesto použitia df[df['Age'] > 25], môžeš písať df.query('Age > 25'). Táto metóda je užitočná najmä pri riešení zložitejších podmienok alebo keď názvy stĺpcov obsahujú medzery. Okrem toho, isin() Funkcia je užitočná, keď chcete filtrovať riadky na základe zoznamu hodnôt. Ak chcete napríklad vybrať riadky, v ktorých je hodnota stĺpca „Mesto“ buď „Chicago“ alebo „New York“, môžete použiť df[df['City'].isin(['Chicago', 'New York'])].
Ďalšia technika zahŕňa loc a iloc indexátory. The loc indexer je založený na štítkoch a umožňuje vám vybrať riadky na základe štítkov riadkov a názvov stĺpcov iloc je založený na celočíselnom umiestnení a umožňuje výber podľa čísel riadkov a stĺpcov. Táto flexibilita je užitočná najmä pri výbere riadkov na základe podmienky aplikovanej na iný stĺpec. napr. df.loc[df['Age'] > 25, 'Name'] vráti mená osôb starších ako 25 rokov. Tieto metódy rozšíria vašu súpravu nástrojov na efektívne spracovanie a analýzu údajov v Pandas a ponúkajú čitateľnejší a udržiavateľnejší kód.
Bežné otázky a odpovede o výbere riadkov DataFrame
- Ako môžem vybrať riadky na základe viacerých podmienok?
- Môžete použiť query() funkcie alebo kombinovať podmienky s logickými operátormi ako & a |. Napríklad, df[(df['Age'] > 25) & (df['City'] == 'Chicago')].
- Môžem filtrovať riadky na základe zoznamu hodnôt?
- Áno, použite isin() funkciu. napr. df[df['City'].isin(['Chicago', 'New York'])].
- Aký je rozdiel medzi loc a iloc?
- loc je založený na označení, zatiaľ čo iloc je založený na celočíselnom umiestnení. Použite loc s menovkami riadkov/stĺpcov a iloc s riadkovými/stĺpcovými indexmi.
- Ako môžem vybrať konkrétne stĺpce pri filtrovaní riadkov?
- Môžeš použiť loc. Napríklad, df.loc[df['Age'] > 25, ['Name', 'City']].
- Ako naložím s chýbajúcimi hodnotami pri výbere riadkov?
- Použi dropna() funkcia na odstránenie riadkov s chýbajúcimi hodnotami, príp fillna() nahradiť ich zadanou hodnotou.
- Môžem použiť regulárne výrazy na filtrovanie riadkov?
- Áno, str.contains() funkcia s regex=True parameter umožňuje filtrovať riadky na základe vzorov regulárnych výrazov. Napríklad, df[df['Name'].str.contains('^A', regex=True)].
- Ako môžem filtrovať riadky na základe indexu?
- Môžeš použiť loc s indexovým názvom. Napríklad, df.loc[df.index == 'some_index'].
- Čo ak názvy stĺpcov obsahujú medzery alebo špeciálne znaky?
- Použi query() funkcia, ktorá dokáže spracovať takéto názvy stĺpcov so spätnými začiarknutiami. Napríklad, df.query('`column name` == value').
Záverečné úvahy o technikách výberu riadkov dátového rámca
Výber riadkov z DataFrame na základe hodnôt stĺpcov v Pandas je kľúčovou zručnosťou pre manipuláciu s údajmi. Rôzne diskutované metódy, vrátane boolovského indexovania, query(), isin()a indexovanie na základe štítkov a celočíselných umiestnení s loc a ilocposkytujú výkonné nástroje na efektívne filtrovanie údajov. Zvládnutie týchto techník umožňuje lepšiu analýzu údajov a čistejší a udržiavateľnejší kód.