Mēģinot izprast lielu datu rāmi Pandas, iespējams, tas būs jāsadala pēc kolonnām un rindām. Šajā apmācībā mēs parādīsim visizplatītākos gadījumus, kad tiek sadalīti jūsu DataFrame kolonnas.
Mēs sāksim ar DataFrame parauga iestatīšanu, ko mēs darīsim, palaižot tālāk norādīto Python kodu mūsu iecienītākajā vidē (vienkāršības labad es izmantoju Anaconda un 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)
Tagad apskatīsim mūsu Dataframe pirmās rindas, izmantojot head() metodi.
languages.head()
Kā redzat, šis ir diezgan vienkāršs DataFrame, ko izmantosim kā piemēru šajā ziņā:
| |
valodu |
avg_difficulty_level |
vidējā_alga |
lietojumprogrammas |
| 0 |
Python |
3 |
120 |
10 |
| 1 |
C-Sharp |
2 |
100 |
15 |
| 2 |
Javascript |
2 |
120 |
14 |
| 3 |
PHP |
1 |
80 |
20 |
Vienas kolonnas filtrēšana
Sāksim ar vienkāršāko gadījumu, proti, vienas kolonnas apakškopu no mūsu datu kopas. Palaižot šo komandu, tiks izveidots sērijas objekts:
Pēc nosaukuma / etiķetes
languages["language"]
Izvade ir sērija:
0 Python
1 C Sharp
2 Javascript
3 PHP
Nosaukums: valoda, dtype: objekts
type(languages["language"])
pandas.core.series.Series
Pēc indeksa
Šī komanda arī atgriezīs sēriju, kurā ir pirmā kolonna
languages.iloc[:,0]
Vairāku kolonnu atlasīšana
Pēc vārda
Nododot kolonnu sarakstu, Pandas atgriezīs DataFrame, kurā ir daļa no datiem.
languages[["language", "applications"]]
| |
valodu |
lietojumprogrammas |
| 0 |
Python |
10 |
| 1 |
C-Sharp |
15 |
| 2 |
Javascript |
14 |
| 3 |
PHP |
20 |
Pēc etiķetes (ar loc.)
df.loc[:,["language","applications"]]
Rezultāts būs līdzīgs.
Pēc indeksa
Tagad izgūsim vairākas kolonnas, izmantojot indeksu:
languages.iloc[: ,[0,3]]
| |
valodu |
lietojumprogrammas |
| 0 |
Python |
10 |
| 1 |
C-Sharp |
15 |
| 2 |
Javascript |
14 |
| 3 |
PHP |
20 |
Pēc nosacījuma
Šajā gadījumā mēs tikai parādīsim kolonnas, kuru nosaukums atbilst noteiktai izteiksmei. Mēs izmantosim diezgan ērtu filtra metodi:
languages.filter(axis = 1, like="avg")
Piezīmes:
- mēs varam arī filtrēt pēc noteiktas regulāras izteiksmes (regulārā izteiksme).
- Mēs varam lietot parametru axis=0, lai filtrētu pēc noteiktas rindas vērtības.
Filtrējiet noteiktas rindas pēc nosacījuma
Šeit ir diezgan vienkāršs veids, kā apakškopu DataFrame atbilstoši rindas vērtībai:
languages[(languages["applications"] > 15)]
Mums ir tikai viens rezultāts:
languages[(languages["applications"] > 15)]
| |
valodu |
avg_difficulty_level |
vidējā_alga |
lietojumprogrammas |
| 3 |
PHP |
1 |
80 |
20 |