Kui proovite Pandas suurt DataFrame'i mõista, peate võib-olla jaotama selle veergude ja ridade kaupa. Selles õpetuses näitame teie DataFrame'i veergude partitsioonide kõige levinumaid kasutusjuhtumeid.
Alustuseks seadistame oma näite DataFrame'i, mida teeme, käivitades oma lemmikkeskkonnas järgmise Pythoni koodi (lihtsuse huvides kasutan Anaconda ja Jupyter Labi).
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)
Nüüd vaatame oma Dataframe'i esimesi ridu, kasutades head() meetodit.
languages.head()
Nagu näete, on see üsna lihtne DataFrame, mida kasutame selles postituses näitena:
| |
keel |
keskmine_raskusaste |
keskmine_palk |
rakendusi |
| 0 |
Python |
3 |
120 |
10 |
| 1 |
C-Sharp |
2 |
100 |
15 |
| 2 |
Javascript |
2 |
120 |
14 |
| 3 |
PHP |
1 |
80 |
20 |
Ühe veeru filtreerimine
Alustame kõige lihtsama juhtumiga, milleks on andmestikust ühe veeru alamhulk. Järgmise käsu käivitamine loob seeriaobjekti:
Nime/sildi järgi
languages["language"]
Väljund on seeria:
0 Python
1 C-Sharp
2 Javascript
3 PHP
Nimi: keel, dtüüp: objekt
type(languages["language"])
pandas.core.series.Series
Indeksi järgi
Järgmine käsk tagastab ka esimest veergu sisaldava seeria
languages.iloc[:,0]
Mitme veeru valimine
Nimepidi
Veergude loendi edastamisel tagastab Pandas DataFrame'i, mis sisaldab osa andmetest.
languages[["language", "applications"]]
| |
keel |
rakendusi |
| 0 |
Python |
10 |
| 1 |
C-Sharp |
15 |
| 2 |
Javascript |
14 |
| 3 |
PHP |
20 |
Sildi järgi (koos asukohaga)
df.loc[:,["language","applications"]]
Tulemus saab olema sarnane.
Indeksi järgi
Nüüd otsime indeksi abil mitu veergu:
languages.iloc[: ,[0,3]]
| |
keel |
rakendusi |
| 0 |
Python |
10 |
| 1 |
C-Sharp |
15 |
| 2 |
Javascript |
14 |
| 3 |
PHP |
20 |
Tingimuste järgi
Sel juhul näitame lihtsalt veerge, mille nimi vastab konkreetsele avaldisele. Kasutame üsna mugavat filtrimeetodit :
languages.filter(axis = 1, like="avg")
Märkused:
- saame filtreerida ka kindla regulaaravaldise (regex) järgi.
- Konkreetse reaväärtuse järgi filtreerimiseks saame rakendada parameetrit axis=0.
Konkreetsete ridade filtreerimine tingimuse järgi
Siin on üsna lihtne viis DataFrame'i alamhulgaks vastavalt rea väärtusele:
languages[(languages["applications"] > 15)]
Meil on ainult üks tulemus:
languages[(languages["applications"] > 15)]
| |
keel |
keskmine_raskusaste |
keskmine_palk |
rakendusi |
| 3 |
PHP |
1 |
80 |
20 |