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

