Python Pandas vodič: DataFrame, datumski raspon, korištenje Pandas

Što je Pandas Python?

pande je biblioteka otvorenog koda koja vam omogućuje manipulaciju i analizu podataka Python. Pande Python knjižnica nudi manipulaciju podacima i operacije s podacima za numeričke tablice i vremenske serije. Pande pružaju jednostavan način za stvaranje, manipuliranje i prepirku s podacima. Izgrađen je na temelju NumPya, što znači da mu je za rad potreban NumPy.

Zašto koristiti Pande?

Znanstvenici koji se bave podacima koriste Pande u Python zbog svojih sljedećih prednosti:

  • Lako obrađuje podatke koji nedostaju
  • Ona koristi Serije za jednodimenzionalnu strukturu podataka istodobno DataFrame za višedimenzionalnu strukturu podataka
  • Omogućuje učinkovit način rezanja podataka
  • Omogućuje fleksibilan način za spajanje, ulančavanje ili preoblikovanje podataka
  • Uključuje moćan alat za rad s vremenskim serijama

Ukratko, Pandas je korisna biblioteka u Analiza podataka. Može se koristiti za manipulaciju i analizu podataka. Pande pružaju snažne strukture podataka jednostavne za korištenje, kao i sredstva za brzo izvođenje operacija na tim strukturama.

Kako instalirati Pande?

Sada u ovome Python Pandas tutorial, naučit ćemo kako instalirati Pandas Python.

Da biste instalirali Pandas biblioteku, pogledajte naš vodič Kako instalirati TensorFlow. Pandas je instaliran prema zadanim postavkama. U udaljenom slučaju, pande nisu instalirane-

Pande možete instalirati koristeći:

  • Anaconda: conda install -c anakonda pande
  • In Jupyter bilježnica:
import sys
!conda install --yes --prefix {sys.prefix} pandas

Što je Pandas DataFrame?

Pandas DataFrame je dvodimenzionalni niz s označenom podatkovnom strukturom koja ima različite vrste stupaca. DataFrame je standardni način za pohranu podataka u tabelarnom formatu, s redovima za pohranu informacija i stupcima za imenovanje informacija. Na primjer, cijena može biti naziv stupca, a 2,3,4 mogu biti vrijednosti cijene.

Data Frame je dobro poznat statističarima i drugim stručnjacima za podatke.

Ispod slike okvira podataka Panda:

Pandas DataFrame

Što je serija?

Niz je jednodimenzionalna struktura podataka. Može imati bilo koju podatkovnu strukturu kao što je cijeli broj, float i niz. Korisno je kada želite izvršiti izračunavanje ili vratiti jednodimenzionalni niz. Niz, po definiciji, ne može imati više stupaca. U potonjem slučaju upotrijebite strukturu okvira podataka.

Python Pandas serija ima sljedeće parametre:

  • Podaci: mogu biti popis, rječnik ili skalarna vrijednost
pd.Series([1., 2., 3.])
0    1.0
1    2.0
2    3.0
dtype: float64

Indeks možete dodati pomoću indeksa. Pomaže imenovanje redaka. Duljina bi trebala biti jednaka veličini stupca

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

U nastavku stvarate Pandas niz s vrijednošću koja nedostaje za treće retke. Napomena, nedostaju vrijednosti u Python označeni su "NaN." Možete koristiti numpy za umjetno stvaranje vrijednosti koja nedostaje: np.nan

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

Izlaz

0    1.0
1    2.0
2    NaN
dtype: float64

Stvorite Pandas DataFrame

Sada ćemo u ovom vodiču za Pandas DataFrame naučiti kako stvarati Python Pandas podatkovni okvir:

Možete pretvoriti numpy niz u pandas podatkovni okvir pomoću pd.Data frame(). Moguće je i suprotno. Da biste pretvorili pandas Data Frame u polje, možete koristiti 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]]

Također možete koristiti rječnik za stvaranje Pandas podatkovnog okvira.

dic = {'Name': ["John", "Smith"], 'Age': [30, 40]}
pd.DataFrame(data=dic)
Dob Ime i Prezime
0 30 Jovan
1 40 Kovač

Podaci o rasponu pandi

Pande imaju prikladan API za stvaranje raspona datuma. Učimo s Python Primjeri pandi:

pd.data_range(datum,period,frequency):

  • Prvi parametar je datum početka
  • Drugi parametar je broj razdoblja (neobavezno ako je naveden datum završetka)
  • Zadnji parametar je učestalost: dan: 'D,' mjesec: 'M' i godina: 'Y.'
## Create date
# Days
dates_d = pd.date_range('20300101', periods=6, freq='D')
print('Day:', dates_d)

Izlaz

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)

Izlaz

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')

Provjera podataka

Možete provjeriti glavu ili rep skupa podataka pomoću head(), ili tail() ispred kojeg stoji naziv okvira podataka pande kao što je prikazano u donjem primjeru Panda:

Korak 1) Stvorite nasumični niz pomoću kvrgav. Niz ima 4 stupca i 6 redaka

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

Korak 2) Zatim stvarate podatkovni okvir pomoću pandi.

Koristite dates_m kao indeks za podatkovni okvir. To znači da će svaki red dobiti "ime" ili indeks koji odgovara datumu.

Na kraju, dajete naziv za 4 stupca sa stupcima argumenata

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

Korak 3) Korištenje funkcije glave

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

Korak 4) Korištenje funkcije repa

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

Korak 5) Izvrsna praksa da dobijete trag o podacima je korištenje describe(). Pruža brojeve, srednju vrijednost, std, min, max i percentil skupa podataka.

df.describe()
A B C D
računati 6.000000 6.000000 6.000000 6.000000
značiti 0.002317 0.256928 -0.151896 0.467601
sati 0.908145 0.746939 0.834664 0.908910
minuta -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

Slice Data

Posljednja točka ovoga Python Vodič za Pandas govori o tome kako izrezati podatkovni okvir Panda.

Naziv stupca možete koristiti za izdvajanje podataka u određenom stupcu kao što je prikazano u donjem primjeru Pandas:

## 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

Da biste odabrali više stupaca, trebate upotrijebiti dva puta zagradu, [[..,..]]

Prvi par zagrada znači da želite odabrati stupce, drugi par zagrada govori koje stupce želite vratiti.

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

Redove možete rezati pomoću:

Kôd u nastavku vraća prva tri retka

### 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

Funkcija loc koristi se za odabir stupaca prema nazivima. Kao i obično, vrijednosti prije zareza označavaju retke, a iza odnose se na stupac. Za odabir više od jednog stupca morate koristiti zagrade.

## 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

Postoji još jedan način odabira više redaka i stupaca u Pandas. Možete koristiti iloc[]. Ova metoda koristi indeks umjesto naziva stupaca. Kod u nastavku vraća isti okvir podataka kao i gore

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

Ispustite stupac

Možete ispustiti stupce koristeći 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

povezan u lanac

Možete spojiti dva DataFramea u Pandas. Možete koristiti pd.concat()

Prije svega, morate stvoriti dva DataFramea. Za sada je dobro, već ste upoznati sa stvaranjem okvira podataka

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

Na kraju spajate dva DataFramea

df_concat = pd.concat([df1,df2]) 
df_concat
Dob ime
0 25 Jovan
1 30 Kovač
2 50 Pavle
3 26 Adam
4 11 Kovač

Ispusti_duplikate

Ako skup podataka može sadržavati duplikate upotrebe informacija, `drop_duplicates` je jednostavan za izuzimanje dupliciranih redaka. Možete vidjeti da `df_concat` ima duplo opažanje, `Smith` se pojavljuje dvaput u stupcu `name`.

df_concat.drop_duplicates('name')
Dob ime
0 25 Jovan
1 30 Kovač
2 50 Pavle
3 26 Adam

Poredaj vrijednosti

Možete sortirati vrijednost pomoću sort_values

df_concat.sort_values('Age')
Dob ime
4 11 Kovač
0 25 Jovan
3 26 Adam
1 30 Kovač
2 50 Pavle

Preimenuj: promjena indeksa

Možete koristiti preimenovanje za preimenovanje stupca u Pandas. Prva vrijednost je naziv trenutnog stupca, a druga vrijednost je naziv novog stupca.

df_concat.rename(columns={"name": "Surname", "Age": "Age_ppl"})
Dob_ppl Prezime
0 25 Jovan
1 30 Kovač
2 50 Pavle
3 26 Adam
4 11 Kovač

Rezime

U nastavku je sažetak najkorisnije metode za znanost podataka s Pandama

uvoz podataka read_csv
stvoriti serije Serija
Stvorite Dataframe DataFrame
Stvorite datumski raspon Raspon datuma
vratiti glavu glava
povratni rep rep
Opisati opisati
kriška koristeći naziv naziv podataka['ime stupca']
Režite pomoću redaka naziv_podatka[0:5]