Kun yrität ymmärtää Pandasissa suurta DataFrame-kehystä, saatat joutua jakamaan sen sarakkeiden ja rivien mukaan. Tässä opetusohjelmassa näytämme yleisimmät käyttötapaukset sarakkeiden osiointiin DataFrame.
Aloitamme asettamalla esimerkkitietokehyksemme, jonka teemme suorittamalla seuraavan Python-koodin suosikkiympäristössämme (yksinkertaisuuden vuoksi käytän Anacondaa ja Jupyter Labia).
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)
Tarkastellaan nyt Dataframe-ensimmäisiä rivejä käyttämällä head()-menetelmää.
languages.head()
Kuten näet, tämä on melko yksinkertainen DataFrame, jota käytämme esimerkkinä tässä viestissä:
| |
Kieli |
keskim._vaikeustaso |
keskipalkka |
sovellukset |
| 0 |
Python |
3 |
120 |
10 |
| 1 |
C-Sharp |
2 |
100 |
15 |
| 2 |
Javascript |
2 |
120 |
14 |
| 3 |
PHP |
1 |
80 |
20 |
Yhden sarakkeen suodattaminen
Aloitamme yksinkertaisimmalla tapauksella, joka on yhden sarakkeen osajoukko tietojoukostamme. Seuraavan komennon suorittaminen luo sarja-objektin:
Nimen / etiketin mukaan
languages["language"]
Tulos on sarja:
0 Python
1 C-Sharp
2 Javascript
3 PHP
Nimi: kieli, dtype: objekti
type(languages["language"])
pandas.core.series.Series
Indeksin mukaan
Seuraava komento palauttaa myös ensimmäisen sarakkeen sisältävän sarjan
languages.iloc[:,0]
Useiden sarakkeiden valitseminen
Nimeltä
Kun Pandas välittää sarakeluettelon, se palauttaa DataFramen, joka sisältää osan tiedoista.
languages[["language", "applications"]]
| |
Kieli |
sovellukset |
| 0 |
Python |
10 |
| 1 |
C-Sharp |
15 |
| 2 |
Javascript |
14 |
| 3 |
PHP |
20 |
Etiketin mukaan (paikalla)
df.loc[:,["language","applications"]]
Tulos on samanlainen.
Indeksin mukaan
Haetaan nyt useita sarakkeita indeksin avulla:
languages.iloc[: ,[0,3]]
| |
Kieli |
sovellukset |
| 0 |
Python |
10 |
| 1 |
C-Sharp |
15 |
| 2 |
Javascript |
14 |
| 3 |
PHP |
20 |
Ehdon mukaan
Tässä tapauksessa näytämme vain sarakkeet, joiden nimi vastaa tiettyä lauseketta. Käytämme varsin kätevää suodatusmenetelmää :
languages.filter(axis = 1, like="avg")
Huomautuksia:
- voimme myös suodattaa tietyn säännöllisen lausekkeen (regex) mukaan.
- Voimme käyttää parametria axis=0 suodattamaan tietyn riviarvon mukaan.
Suodata tietyt rivit ehdon mukaan
Tässä on melko suoraviivainen tapa asettaa DataFrame osajoukko rivin arvon mukaan:
languages[(languages["applications"] > 15)]
Meillä on vain yksi tulos:
languages[(languages["applications"] > 15)]
| |
Kieli |
keskim._vaikeustaso |
keskipalkka |
sovellukset |
| 3 |
PHP |
1 |
80 |
20 |