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