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ă si 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ă
Descrie descrie
felie folosind numele dataname['columnname']
Tăiați folosind rânduri nume_date[0:5]