Python Pandade õpetus: DataFrame, kuupäevavahemik, Pandade kasutamine

Mis on Pandas Python?

Pandad on avatud lähtekoodiga teek, mis võimaldab teil andmetega manipuleerida ja analüüsida Python. Pandad Python raamatukogu pakub andmetega manipuleerimist ja andmeoperatsioone arvtabelite ja aegridade jaoks. Pandad pakuvad lihtsat viisi andmete loomiseks, manipuleerimiseks ja vaidlustamiseks. See on ehitatud NumPy peale, mis tähendab, et see vajab töötamiseks NumPy-d.

Miks kasutada Pandasid?

Andmeteadlased kasutavad Pandasid aastal Python selle järgmiste eeliste eest:

  • Käsitseb lihtsalt puuduvaid andmeid
  • See kasutab Seeria ühemõõtmelise andmestruktuuri jaoks ja DataFrame mitmemõõtmelise andmestruktuuri jaoks
  • See on tõhus viis andmete tükeldamiseks
  • See pakub paindlikku võimalust andmete liitmiseks, liitmiseks või ümberkujundamiseks
  • See sisaldab töötamiseks võimsat aegridade tööriista

Lühidalt, Pandas on kasulik raamatukogu andmete analüüs. Seda saab kasutada andmete töötlemiseks ja analüüsimiseks. Pandad pakuvad võimsaid ja hõlpsasti kasutatavaid andmestruktuure ning vahendeid nende struktuuridega kiireks toimingute tegemiseks.

Kuidas Pandasid installida?

Nüüd selles Python Pandade õpetus, õpime, kuidas Pandasid sisse installida Python.

Pandase raamatukogu installimiseks vaadake meie õpetust Kuidas installida TensorFlow. Pandas on vaikimisi installitud. Kaugjuhtumil pole pandasid installitud-

Pandasid saate installida, kasutades:

  • Anaconda: conda install -c anaconda pandas
  • In Jupyter Märkmik:
import sys
!conda install --yes --prefix {sys.prefix} pandas

Mis on Panda DataFrame?

Panda DataFrame on kahemõõtmeline massiiv märgistatud andmestruktuuriga, millel on erinevad veerutüübid. DataFrame on standardne viis andmete salvestamiseks tabelivormingus, kus on read teabe salvestamiseks ja veerud teabe andmiseks. Näiteks võib hind olla veeru nimi ja 2,3,4 võivad olla hinna väärtused.

Data Frame on statistikutele ja teistele andmepraktikutele hästi teada.

Allpool pilt Panda andmeraamist:

Panda DataFrame

Mis on sari?

Seeria on ühemõõtmeline andmestruktuur. Sellel võib olla mis tahes andmestruktuur, näiteks täisarv, hõljuk ja string. See on kasulik, kui soovite arvutada või tagastada ühemõõtmelise massiivi. Seerial ei saa definitsiooni järgi olla mitut veergu. Viimasel juhul kasutage andmeraami struktuuri.

Python Panda seerial on järgmised parameetrid:

  • Andmed: võib olla loend, sõnastik või skalaarväärtus
pd.Series([1., 2., 3.])
0    1.0
1    2.0
2    3.0
dtype: float64

Indeksi saate lisada indeksiga. See aitab ridadele nimesid anda. Pikkus peaks olema võrdne veeru suurusega

pd.Series([1., 2., 3.], index=['a', 'b', 'c'])

Allpool loote Pandase seeria, mille kolmandate ridade jaoks puudub väärtus. Pange tähele, väärtused puuduvad Python on märgitud "NaN". Puuduva väärtuse loomiseks võite kasutada numpy: np.nan kunstlikult

pd.Series([1,2,np.nan])

Väljund

0    1.0
1    2.0
2    NaN
dtype: float64

Looge Panda DataFrame

Nüüd selles Pandas DataFrame'i õpetuses õpime, kuidas luua Python Panda andmeraam:

Numpy massiivi saate teisendada pandade andmeraamiks pd.Data frame() abil. Võimalik on ka vastupidine. Panda andmeraami massiiviks teisendamiseks võite kasutada np.array()

## Numpy to pandas
import numpy as np
h = [[1,2],[3,4]] 
df_h = pd.DataFrame(h)
print('Data Frame:', df_h)

## Pandas to numpy
df_h_n = np.array(df_h)
print('Numpy array:', df_h_n)
Data Frame:    0  1
0  1  2
1  3  4
Numpy array: [[1 2]
 [3 4]]

Pandase andmeraami loomiseks saate kasutada ka sõnastikku.

dic = {'Name': ["John", "Smith"], 'Age': [30, 40]}
pd.DataFrame(data=dic)
vanus Nimi
0 30 John
1 40 sepp

Panda levila andmed

Pandadel on kuupäevavahemiku loomiseks mugav API. Õpime koos Python Panda näited:

pd.data_range(kuupäev,periood,sagedus):

  • Esimene parameeter on alguskuupäev
  • Teine parameeter on perioodide arv (valikuline, kui lõppkuupäev on määratud)
  • Viimane parameeter on sagedus: päev: "D", kuu: "M" ja aasta: "Y".
## Create date
# Days
dates_d = pd.date_range('20300101', periods=6, freq='D')
print('Day:', dates_d)

Väljund

Day: DatetimeIndex(['2030-01-01', '2030-01-02', '2030-01-03', '2030-01-04', '2030-01-05', '2030-01-06'], dtype='datetime64[ns]', freq='D')
# Months
dates_m = pd.date_range('20300101', periods=6, freq='M')
print('Month:', dates_m)

Väljund

Month: DatetimeIndex(['2030-01-31', '2030-02-28', '2030-03-31', '2030-04-30','2030-05-31', '2030-06-30'], dtype='datetime64[ns]', freq='M')

Andmete kontrollimine

Andmestiku pea või saba saab kontrollida võtmega head() või tail(), millele eelneb panda andmeraami nimi, nagu on näidatud allolevas Panda näites:

Step 1) Looge juhuslik jada koos tuim. Jadas on 4 veergu ja 6 rida

random = np.random.randn(6,4)

Step 2) Seejärel loote pandade abil andmeraami.

Kasutage andmeraami indeksina dates_m. See tähendab, et igale reale antakse kuupäevale vastav nimi või indeks.

Lõpuks annate neljale argumendiveeruga veerule nime

# Create data with date
df = pd.DataFrame(random,
                  index=dates_m,
                  columns=list('ABCD'))

Step 3) Pea funktsiooni kasutamine

df.head(3)
A B C D
2030-01-31 1.139433 1.318510 -0.181334 1.615822
2030-02-28 -0.081995 -0.063582 0.857751 -0.527374
2030-03-31 -0.519179 0.080984 -1.454334 1.314947

4. samm) Saba funktsiooni kasutamine

df.tail(3)
A B C D
2030-04-30 -0.685448 -0.011736 0.622172 0.104993
2030-05-31 -0.935888 -0.731787 -0.558729 0.768774
2030-06-30 1.096981 0.949180 -0.196901 -0.471556

5. samm) Suurepärane tava andmete kohta aimu saamiseks on kasutada parameetrit description(). See annab andmestiku arvud, keskmise, std, min, max ja protsentiili.

df.describe()
A B C D
loe 6.000000 6.000000 6.000000 6.000000
keskmine 0.002317 0.256928 -0.151896 0.467601
std 0.908145 0.746939 0.834664 0.908910
minutit -0.935888 -0.731787 -1.454334 -0.527374
25% -0.643880 -0.050621 -0.468272 -0.327419
50% -0.300587 0.034624 -0.189118 0.436883
75% 0.802237 0.732131 0.421296 1.178404
max 1.139433 1.318510 0.857751 1.615822

Lõika andmed

Selle viimane punkt Python Pandade õpetus käsitleb pandade andmeraami viilutamist.

Saate kasutada veeru nime konkreetse veeru andmete eraldamiseks, nagu on näidatud allolevas Panda näites:

## Slice
### Using name
df['A']

2030-01-31   -0.168655
2030-02-28    0.689585
2030-03-31    0.767534
2030-04-30    0.557299
2030-05-31   -1.547836
2030-06-30    0.511551
Freq: M, Name: A, dtype: float64

Mitme veeru valimiseks peate kasutama kahekordset sulgu [[..,..]]

Esimene klambripaar tähendab, et soovite valida veerge, teine ​​​​sulgupaar ütleb, milliseid veerge soovite tagastada.

df[['A', 'B']].
A B
2030-01-31 -0.168655 0.587590
2030-02-28 0.689585 0.998266
2030-03-31 0.767534 -0.940617
2030-04-30 0.557299 0.507350
2030-05-31 -1.547836 1.276558
2030-06-30 0.511551 1.572085

Saate ridu viiludeks lõigata:

Allolev kood tagastab kolm esimest rida

### using a slice for row
df[0:3]
A B C D
2030-01-31 -0.168655 0.587590 0.572301 -0.031827
2030-02-28 0.689585 0.998266 1.164690 0.475975
2030-03-31 0.767534 -0.940617 0.227255 -0.341532

Funktsiooni loc kasutatakse veergude valimiseks nimede järgi. Nagu tavaliselt, tähistavad väärtused enne kooma ridu ja pärast veergu. Rohkem kui ühe veeru valimiseks peate kasutama sulgusid.

## Multi col
df.loc[:,['A','B']]
A B
2030-01-31 -0.168655 0.587590
2030-02-28 0.689585 0.998266
2030-03-31 0.767534 -0.940617
2030-04-30 0.557299 0.507350
2030-05-31 -1.547836 1.276558
2030-06-30 0.511551 1.572085

Pandas mitme rea ja veeru valimiseks on veel üks meetod. Võite kasutada iloc[]. See meetod kasutab veergude nime asemel indeksit. Allolev kood tagastab sama andmeraami nagu ülal

df.iloc[:, :2]
A B
2030-01-31 -0.168655 0.587590
2030-02-28 0.689585 0.998266
2030-03-31 0.767534 -0.940617
2030-04-30 0.557299 0.507350
2030-05-31 -1.547836 1.276558
2030-06-30 0.511551 1.572085

Laske veerg maha

Veergude eemaldamiseks saate kasutada pd.drop()

df.drop(columns=['A', 'C'])
B D
2030-01-31 0.587590 -0.031827
2030-02-28 0.998266 0.475975
2030-03-31 -0.940617 -0.341532
2030-04-30 0.507350 -0.296035
2030-05-31 1.276558 0.523017
2030-06-30 1.572085 -0.594772

Liitmine

Pandas saate ühendada kaks DataFrame'i. Võite kasutada pd.concat()

Kõigepealt peate looma kaks DataFrame'i. Seni on kõik hästi, olete andmeraami loomisega juba tuttav

import numpy as np
df1 = pd.DataFrame({'name': ['John', 'Smith','Paul'],
                     'Age': ['25', '30', '50']},
                    index=[0, 1, 2])
df2 = pd.DataFrame({'name': ['Adam', 'Smith' ],
                     'Age': ['26', '11']},
                    index=[3, 4])  

Lõpuks ühendate kaks DataFrame'i

df_concat = pd.concat([df1,df2]) 
df_concat
vanus nimi
0 25 John
1 30 sepp
2 50 Paul
3 26 Adam
4 11 sepp

Drop_duplicates

Kui andmestik võib sisaldada dubleerivaid teabekasutust, on parameetri „drop_duplicates” dubleerivad read hõlpsasti välistatav. Näete, et parameetril „df_concat” on dubleeritud vaatlus, „Smith” ilmub veerus „nimi” kaks korda.

df_concat.drop_duplicates('name')
vanus nimi
0 25 John
1 30 sepp
2 50 Paul
3 26 Adam

Sorteeri väärtused

Saate väärtusi sortida käsuga sort_values

df_concat.sort_values('Age')
vanus nimi
4 11 sepp
0 25 John
3 26 Adam
1 30 sepp
2 50 Paul

Nimeta ümber: indeksi muutmine

Pandas veeru ümbernimetamiseks saate kasutada ümbernimetamist. Esimene väärtus on praeguse veeru nimi ja teine ​​väärtus on uue veeru nimi.

df_concat.rename(columns={"name": "Surname", "Age": "Age_ppl"})
Age_ppl Perekonnanimi
0 25 John
1 30 sepp
2 50 Paul
3 26 Adam
4 11 sepp

kokkuvõte

Allpool on kokkuvõte Pandade andmeteaduse kõige kasulikumatest meetoditest

andmete importimine read_csv
sarja luua Seeria
Loo andmeraamistik DataFrame
Loo kuupäevavahemik kuupäevavahemik
tagasi pea juhataja
tagasi saba saba
Kirjeldama kirjeldama
viil nime kasutades andmenimi['veerunimi']
Viiluta ridade abil andme_nimi[0:5]