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:
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] |