Kada pokušavate shvatiti veliki DataFrame u Pandasu, možda ćete ga morati podskupiti po stupcima i recima. U ovom vodiču prikazat ćemo najčešće slučajeve korištenja particioniranja stupca vašeg DataFramea.
Počet ćemo postavljanjem našeg primjera DataFramea, što ćemo učiniti pokretanjem sljedećeg Python koda u našem omiljenom okruženju (radi jednostavnosti, koristim Anacondu i 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)
Pogledajmo sada prve retke okvira podataka pomoću metode head().
languages.head()
Kao što možete vidjeti, ovo je prilično jednostavan DataFrame koji ćemo koristiti kao primjer u ovom postu:
| |
Jezik |
prosječna_razina_teškoće |
prosječna_plata |
aplikacije |
| 0 |
Piton |
3 |
120 |
10 |
| 1 |
C-Sharp |
2 |
100 |
15 |
| 2 |
Javascript |
2 |
120 |
14 |
| 3 |
PHP |
1 |
80 |
20 |
Filtriranje jednog stupca
Počet ćemo s najjednostavnijim slučajem, a to je podskupiti jedan stupac iz našeg skupa podataka. Izvođenje sljedeće naredbe stvorit će objekt serije:
Po imenu/oznaci
languages["language"]
Rezultat je serija:
0 Python
1 C-Sharp
2 Javascript
3 PHP
Naziv: jezik, dtype: objekt
type(languages["language"])
pandas.core.series.Series
Po indeksu
Sljedeća naredba također će vratiti niz koji sadrži prvi stupac
languages.iloc[:,0]
Odabir više stupaca
Imenom
Prilikom prosljeđivanja popisa stupaca, Pandas će vratiti DataFrame koji sadrži dio podataka.
languages[["language", "applications"]]
| |
Jezik |
aplikacije |
| 0 |
Piton |
10 |
| 1 |
C-Sharp |
15 |
| 2 |
Javascript |
14 |
| 3 |
PHP |
20 |
Po naljepnici (s lok.)
df.loc[:,["language","applications"]]
Rezultat će biti sličan.
Po indeksu
Sada dohvatimo više stupaca pomoću indeksa:
languages.iloc[: ,[0,3]]
| |
Jezik |
aplikacije |
| 0 |
Piton |
10 |
| 1 |
C-Sharp |
15 |
| 2 |
Javascript |
14 |
| 3 |
PHP |
20 |
Po uvjetu
U ovom slučaju, samo ćemo prikazati stupce čiji naziv odgovara određenom izrazu. Koristit ćemo vrlo zgodnu metodu filtriranja :
languages.filter(axis = 1, like="avg")
Bilješke:
- također možemo filtrirati prema određenom regularnom izrazu (regex).
- Možemo primijeniti parametar axis=0 za filtriranje prema određenoj vrijednosti retka.
Filtrirajte određene retke prema uvjetu
Evo prilično jednostavnog načina za podpostavku DataFramea prema vrijednosti retka:
languages[(languages["applications"] > 15)]
Imamo samo jedan rezultat:
languages[(languages["applications"] > 15)]
| |
Jezik |
prosječna_razina_teškoće |
prosječna_plata |
aplikacije |
| 3 |
PHP |
1 |
80 |
20 |