Keď sa pokúšate pochopiť zmysel veľkého DataFrame v Pandas, možno ho budete musieť podmnožiť podľa stĺpcov a riadkov. V tomto návode ukážeme najčastejšie prípady použitia rozdelenia stĺpcov na DataFrame.
Začneme nastavením nášho príkladu DataFrame, ktorý vykonáme spustením nasledujúceho kódu Python v našom obľúbenom prostredí (pre jednoduchosť používam Anaconda a Jupyter Lab).
import pandas as pd # import the pandas library
languages = ({"language": [ "Python", "C-Sharp", "Javascript","PHP"] ,
"avg_difficulty_level": [3, 2, 2, 1],
"avg_salary": [120, 100, 120, 80],
"applications": [10,15,14,20]})
# Now let's convert our dict to a DataFrame
languages = pd.DataFrame.from_dict(languages)
Teraz sa pozrime na prvé riadky Dataframe pomocou metódy head().
languages.head()
Ako môžete vidieť, toto je celkom jednoduchý DataFrame, ktorý použijeme ako príklad v tomto príspevku:
| |
Jazyk |
avg_difficulty_level |
priemerný_plat |
aplikácie |
| 0 |
Python |
3 |
120 |
10 |
| 1 |
C-Sharp |
2 |
100 |
15 |
| 2 |
Javascript |
2 |
120 |
14 |
| 3 |
PHP |
1 |
80 |
20 |
Filtrovanie jedného stĺpca
Začneme najjednoduchším prípadom, ktorým je podmnožina jedného stĺpca z našej množiny údajov. Spustením nasledujúceho príkazu sa vytvorí objekt série:
Podľa mena / štítku
languages["language"]
Výstupom je séria:
0 Python
1 C-Sharp
2 Javascript
3 PHP
Názov: jazyk, dtype: objekt
type(languages["language"])
pandas.core.series.Series
Podľa indexu
Nasledujúci príkaz tiež vráti sériu obsahujúcu prvý stĺpec
languages.iloc[:,0]
Výber viacerých stĺpcov
Podľa názvu
Pri odovzdávaní zoznamu stĺpcov Pandas vráti DataFrame obsahujúci časť údajov.
languages[["language", "applications"]]
| |
Jazyk |
aplikácie |
| 0 |
Python |
10 |
| 1 |
C-Sharp |
15 |
| 2 |
Javascript |
14 |
| 3 |
PHP |
20 |
Podľa štítka (s miestom)
df.loc[:,["language","applications"]]
Výsledok bude podobný.
Podľa indexu
Teraz získajme viacero stĺpcov pomocou indexu:
languages.iloc[: ,[0,3]]
| |
Jazyk |
aplikácie |
| 0 |
Python |
10 |
| 1 |
C-Sharp |
15 |
| 2 |
Javascript |
14 |
| 3 |
PHP |
20 |
Podľa podmienok
V tomto prípade ukážeme len stĺpce, ktorých názov sa zhoduje s konkrétnym výrazom. Použijeme celkom praktickú metódu filtrovania :
languages.filter(axis = 1, like="avg")
Poznámky:
- môžeme filtrovať aj podľa konkrétneho regulárneho výrazu (regex).
- Môžeme použiť parameter axis=0 na filtrovanie podľa konkrétnej hodnoty riadka.
Filtrujte konkrétne riadky podľa podmienky
Tu je celkom jednoduchý spôsob, ako podnastaviť DataFrame podľa hodnoty riadka:
languages[(languages["applications"] > 15)]
Máme len jeden výsledok:
languages[(languages["applications"] > 15)]
| |
Jazyk |
avg_difficulty_level |
priemerný_plat |
aplikácie |
| 3 |
PHP |
1 |
80 |
20 |