Bandant suprasti didelį duomenų rėmelį Pandas, gali tekti jį suskirstyti pagal stulpelius ir eilutes. Šioje mokymo programoje parodysime dažniausiai pasitaikančius „DataFrame“ stulpelių skaidymo atvejus.
Pradėsime nuo pavyzdinio „DataFrame“ nustatymo, kurį atliksime paleisdami šį Python kodą savo mėgstamoje aplinkoje (paprastumo dėlei naudoju Anaconda ir 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)
Dabar pažvelkime į pirmąsias Dataframe eilutes naudodami head () metodą.
languages.head()
Kaip matote, tai gana paprastas DataFrame, kurį naudosime kaip pavyzdį šiame įraše:
|
kalba |
avg_difficulty_level |
vidutinis_atlyginimas |
programos |
0 |
Python |
3 |
120 |
10 |
1 |
C-Sharp |
2 |
100 |
15 |
2 |
Javascript |
2 |
120 |
14 |
3 |
PHP |
1 |
80 |
20 |
Vieno stulpelio filtravimas
Pradėsime nuo paprasčiausio atvejo, ty po vieną iš mūsų duomenų rinkinio stulpelį. Vykdant šią komandą bus sukurtas serijos objektas:
Pagal pavadinimą / etiketę
languages["language"]
Išvestis yra serija:
0 Python
1 C-Sharp
2 Javascript
3 PHP
Pavadinimas: kalba, dtype: objektas
type(languages["language"])
pandas.core.series.Series
Pagal indeksą
Ši komanda taip pat grąžins seriją, kurioje yra pirmasis stulpelis
languages.iloc[:,0]
Kelių stulpelių pasirinkimas
Pagal vardą
Perduodami stulpelių sąrašą, Pandas pateiks duomenų rėmelį, kuriame yra dalis duomenų.
languages[["language", "applications"]]
|
kalba |
programos |
0 |
Python |
10 |
1 |
C-Sharp |
15 |
2 |
Javascript |
14 |
3 |
PHP |
20 |
Pagal etiketę (su vietove)
df.loc[:,["language","applications"]]
Rezultatas bus panašus.
Pagal indeksą
Dabar gaukime kelis stulpelius naudodami indeksą:
languages.iloc[: ,[0,3]]
|
kalba |
programos |
0 |
Python |
10 |
1 |
C-Sharp |
15 |
2 |
Javascript |
14 |
3 |
PHP |
20 |
Pagal sąlygą
Šiuo atveju mes tiesiog parodysime stulpelius, kurių pavadinimas atitinka konkrečią išraišką. Naudosime gana patogų filtravimo metodą:
languages.filter(axis = 1, like="avg")
Pastabos:
- taip pat galime filtruoti pagal konkrečią reguliariąją išraišką (regex).
- Norėdami filtruoti pagal konkrečią eilutės reikšmę, galime taikyti parametrą axis=0.
Filtruokite konkrečias eilutes pagal sąlygą
Štai gana paprastas būdas nustatyti „DataFrame“ pagal eilutės reikšmę:
languages[(languages["applications"] > 15)]
Turime tik vieną rezultatą:
languages[(languages["applications"] > 15)]
|
kalba |
avg_difficulty_level |
vidutinis_atlyginimas |
programos |
3 |
PHP |
1 |
80 |
20 |