Python Tutorial Pandas: DataFrame, Data Range, Utilizarea Pandas

Ce este Pandas Python?

ursi panda este o bibliotecฤƒ open-source care vฤƒ permite sฤƒ efectuaศ›i manipularea ศ™i analiza datelor รฎn Python. panda Python biblioteca oferฤƒ manipularea datelor ศ™i operaศ›iuni de date pentru tabele numerice ศ™i serii de timp. Pandas oferฤƒ o modalitate uศ™oarฤƒ de a crea, manipula ศ™i discuta datele. Este construit pe NumPy, รฎnseamnฤƒ cฤƒ are nevoie de NumPy pentru a funcศ›iona.

De ce sฤƒ folosiศ›i Pandas?

Oamenii de ศ™tiinศ›ฤƒ de date folosesc Pandas รฎn Python pentru urmฤƒtoarele avantaje:

  • Gestioneazฤƒ cu uศ™urinศ›ฤƒ datele lipsฤƒ
  • Foloseศ™te Serii pentru structura de date unidimensionalฤƒ ศ™i DataFrame pentru structura de date multidimensionalฤƒ
  • Oferฤƒ o modalitate eficientฤƒ de tฤƒiere a datelor
  • Oferฤƒ o modalitate flexibilฤƒ de รฎmbinare, concatenare sau remodelare a datelor
  • Include un instrument puternic de serie de timp cu care sฤƒ lucraศ›i

Pe scurt, Pandas este o bibliotecฤƒ utilฤƒ รฎn analiza datelor. Poate fi folosit pentru a efectua manipularea ศ™i analiza datelor. Pandas oferฤƒ structuri de date puternice ศ™i uศ™or de utilizat, precum ศ™i mijloacele de a efectua rapid operaศ›iuni asupra acestor structuri.

Cum se instaleazฤƒ Pandas?

Acum รฎn asta Python Tutorial Pandas, vom รฎnvฤƒศ›a cum sฤƒ instalฤƒm Pandas รฎn Python.

Pentru a instala biblioteca Pandas, consultaศ›i tutorialul nostru Cum se instaleazฤƒ TensorFlow. Pandas este instalat implicit. รŽn caz de la distanศ›ฤƒ, panda nu este instalat-

Puteศ›i instala Pandas folosind:

  • Anaconda: conda install -c anaconda panda
  • In Jupyter Caiet :
import sys
!conda install --yes --prefix {sys.prefix} pandas

Ce este un Pandas DataFrame?

Pandas DataFrame este o matrice bidimensionalฤƒ cu structurฤƒ de date etichetatฤƒ avรขnd diferite tipuri de coloane. Un DataFrame este o modalitate standard de stocare a datelor รฎntr-un format tabelar, cu rรขnduri pentru a stoca informaศ›iile ศ™i coloane pentru a denumi informaศ›iile. De exemplu, preศ›ul poate fi numele unei coloane ศ™i 2,3,4 pot fi valorile preศ›ului.

Data Frame este bine cunoscut de cฤƒtre statistician ศ™i alศ›i practicieni de date.

Mai jos o imagine a unui cadru de date Pandas:

Pandas DataFrame

Ce este o serie?

O serie este o structurฤƒ de date unidimensionalฤƒ. Poate avea orice structurฤƒ de date, cum ar fi รฎntreg, float ศ™i ศ™ir. Este util atunci cรขnd doriศ›i sฤƒ efectuaศ›i calcule sau sฤƒ returnaศ›i o matrice unidimensionalฤƒ. O serie, prin definiศ›ie, nu poate avea mai multe coloane. Pentru cel din urmฤƒ caz, vฤƒ rugฤƒm sฤƒ utilizaศ›i structura cadrului de date.

Python Seria Pandas are urmฤƒtorii parametri:

  • Date: pot fi o listฤƒ, dicศ›ionar sau valoare scalarฤƒ
pd.Series([1., 2., 3.])
0    1.0
1    2.0
2    3.0
dtype: float64

Puteศ›i adฤƒuga indexul cu index. Ajutฤƒ sฤƒ denumirea rรขndurilor. Lungimea trebuie sฤƒ fie egalฤƒ cu dimensiunea coloanei

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

Mai jos, creaศ›i o serie Pandas cu o valoare lipsฤƒ pentru al treilea rรขnd. Reศ›ineศ›i, valorile lipsฤƒ รฎn Python sunt notate โ€žNaNโ€. Puteศ›i folosi numpy pentru a crea valoarea lipsฤƒ: np.nan รฎn mod artificial

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

producศ›ie

0    1.0
1    2.0
2    NaN
dtype: float64

Creaศ›i Pandas DataFrame

Acum, รฎn acest tutorial Pandas DataFrame, vom รฎnvฤƒศ›a cum sฤƒ creฤƒm Python Cadrul de date Pandas:

Puteศ›i converti o matrice numpy รฎntr-un cadru de date panda cu pd.Data frame(). Este posibil ศ™i opusul. Pentru a converti un cadru de date panda รฎntr-o matrice, puteศ›i utiliza 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]]

De asemenea, puteศ›i utiliza un dicศ›ionar pentru a crea un cadru de date Pandas.

dic = {'Name': ["John", "Smith"], 'Age': [30, 40]}
pd.DataFrame(data=dic)
Vรขrstฤƒ Nume
0 30 Ioan
1 40 Fierar

Date privind intervalul de panda

Pandas au un API convenabil pentru a crea un interval de date. Sฤƒ รฎnvฤƒศ›ฤƒm cu Python Exemple de panda:

pd.data_range(data,period,frequency):

  • Primul parametru este data de รฎncepere
  • Al doilea parametru este numฤƒrul de perioade (opศ›ional dacฤƒ este specificatฤƒ data de รฎncheiere)
  • Ultimul parametru este frecvenศ›a: ziua: โ€žDโ€, luna: โ€žMโ€ ศ™i anul: โ€žYโ€.
## Create date
# Days
dates_d = pd.date_range('20300101', periods=6, freq='D')
print('Day:', dates_d)

producศ›ie

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)

producศ›ie

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

Inspectarea datelor

Puteศ›i verifica capul sau coada setului de date cu head(), sau tail() precedat de numele cadrului de date al panda, aศ™a cum se aratฤƒ รฎn exemplul Pandas de mai jos:

Pas 1) Creaศ›i o secvenศ›ฤƒ aleatorie cu NumPy. Secvenศ›a are 4 coloane ศ™i 6 rรขnduri

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

Pas 2) Apoi creaศ›i un cadru de date folosind panda.

Utilizaศ›i dates_m ca index pentru cadrul de date. รŽnseamnฤƒ cฤƒ fiecฤƒrui rรขnd i se va da un โ€žnumeโ€ sau un index, corespunzฤƒtor unei date.

รŽn cele din urmฤƒ, daศ›i un nume celor 4 coloane cu coloanele argument

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

Pas 3) Folosind funcศ›ia cap

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

Pasul 4) Utilizarea funcศ›iei de coadฤƒ

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

Pasul 5) O practicฤƒ excelentฤƒ pentru a obศ›ine un indiciu despre date este sฤƒ utilizaศ›i describe(). Acesta furnizeazฤƒ numฤƒrul, media, std, min, max ศ™i percentila setului de date.

df.describe()
A B C D
conta 6.000000 6.000000 6.000000 6.000000
รฎnsemna 0.002317 0.256928 -0.151896 0.467601
std 0.908145 0.746939 0.834664 0.908910
minute -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

Secศ›ioneazฤƒ datele

Ultimul punct al acestui lucru Python Tutorialul Pandas este despre cum sฤƒ tฤƒiaศ›i un cadru de date panda.

Puteศ›i utiliza numele coloanei pentru a extrage date dintr-o anumitฤƒ coloanฤƒ, aศ™a cum se aratฤƒ รฎn exemplul Pandas de mai jos:

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

Pentru a selecta mai multe coloane, trebuie sฤƒ utilizaศ›i de douฤƒ ori paranteza, [[..,..]]

Prima pereche de paranteze รฎnseamnฤƒ cฤƒ doriศ›i sฤƒ selectaศ›i coloane, a doua pereche de paranteze indicฤƒ ce coloane doriศ›i sฤƒ returnaศ›i.

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

Puteศ›i tฤƒia rรขndurile cu:

Codul de mai jos returneazฤƒ primele trei rรขnduri

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

Funcศ›ia loc este utilizatฤƒ pentru a selecta coloanele dupฤƒ nume. Ca de obicei, valorile dinainte de comฤƒ reprezintฤƒ rรขndurile ศ™i dupฤƒ se referฤƒ la coloanฤƒ. Trebuie sฤƒ utilizaศ›i paranteze pentru a selecta mai mult de o coloanฤƒ.

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

Existฤƒ o altฤƒ metodฤƒ de a selecta mai multe rรขnduri ศ™i coloane รฎn Pandas. Puteศ›i folosi iloc[]. Aceastฤƒ metodฤƒ foloseศ™te indexul รฎn loc de numele coloanelor. Codul de mai jos returneazฤƒ acelaศ™i cadru de date ca mai sus

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

Aruncฤƒ o coloanฤƒ

Puteศ›i arunca coloane folosind 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

Concatenare

Puteศ›i concatena douฤƒ DataFrame รฎn Pandas. Puteศ›i folosi pd.concat()

รŽn primul rรขnd, trebuie sฤƒ creaศ›i douฤƒ DataFrames. Pรขnฤƒ acum, e bine, eศ™ti deja familiarizat cu crearea cadrelor de date

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

รŽn cele din urmฤƒ, concatenaศ›i cele douฤƒ DataFrame

df_concat = pd.concat([df1,df2]) 
df_concat
Vรขrstฤƒ nume
0 25 Ioan
1 30 Fierar
2 50 Paul
3 26 Adam
4 11 Fierar

Drop_duplicates

Dacฤƒ un set de date poate conศ›ine informaศ›ii duplicate, `drop_duplicates` este un simplu de exclus rรขnduri duplicate. Puteศ›i vedea cฤƒ `df_concat` are o observaศ›ie duplicatฤƒ, `Smith` apare de douฤƒ ori รฎn coloana `name`.`

df_concat.drop_duplicates('name')
Vรขrstฤƒ nume
0 25 Ioan
1 30 Fierar
2 50 Paul
3 26 Adam

Sortaศ›i valorile

Puteศ›i sorta valoarea cu sort_values

df_concat.sort_values('Age')
Vรขrstฤƒ nume
4 11 Fierar
0 25 Ioan
3 26 Adam
1 30 Fierar
2 50 Paul

Redenumire: modificarea indexului

Puteศ›i folosi redenumirea pentru a redenumi o coloanฤƒ รฎn Pandas. Prima valoare este numele coloanei curente, iar a doua valoare este numele coloanei noi.

df_concat.rename(columns={"name": "Surname", "Age": "Age_ppl"})
Age_ppl Nume de familie
0 25 Ioan
1 30 Fierar
2 50 Paul
3 26 Adam
4 11 Fierar

Rezumat

Mai jos este un rezumat al celei mai utile metode pentru ศ™tiinศ›a datelor cu Pandas

import date read_csv
creaศ›i serii serie
Creaศ›i un cadru de date DataFrame
Creaศ›i un interval de date DATE_RANGE
รฎntoarce capul cap
รฎntoarce coada coadฤƒ
Descrieti descrie
felie folosind numele dataname['columnname']
Tฤƒiaศ›i folosind rรขnduri nume_date[0:5]

Rezumaศ›i aceastฤƒ postare cu: