Foaie de referință Pandas
Ghid detaliat pentru utilizarea bibliotecii Pandas.
Instalarea Pandas
| Comandă | Descriere |
|---|---|
conda install pandas |
Cea mai bună modalitate de a obține pandas este prin conda |
python3 -m pip install --upgrade pandas |
Prin PyPI |
pip install pandas |
Instalare pip standard |
Abrevieri cheie și importul pachetelor
| Abreviere | Descriere |
|---|---|
df |
Orice obiect Pandas DataFrame |
s |
Orice obiect Pandas Series |
Metode de import
| Comandă | Descriere |
|---|---|
import pandas as pd |
Importă pandas cu aliasul pd |
import numpy as np |
Importă numpy cu aliasul np |
Selecția datelor
| Comandă | Descriere |
|---|---|
df[col] |
Returnează o coloană sub formă de Series pe baza numelui coloanei |
df[[col1, col2]] |
Returnează mai multe coloane sub formă de DataFrame |
s.iloc[0] |
Selectează datele după poziție |
s.loc['index_one'] |
Selectează datele după index |
df.iloc[0,:] |
Returnează prima linie |
df.iloc[0,0] |
Returnează primul element al primei coloane |
Curățarea datelor
| Comandă | Descriere |
|---|---|
df.columns = ['a','b','c'] |
Redenumirea coloanelor |
pd.isnull() |
Verifică valorile nule într-un DataFrame; returnează un array Boolean |
pd.notnull() |
Verifică valorile non-nule într-un DataFrame; returnează un array Boolean |
df.dropna() |
Șterge toate rândurile care conțin valori nule |
df.dropna(axis=1) |
Șterge toate coloanele care conțin valori nule |
df.dropna(axis=1, thresh=n) |
Șterge toate rândurile cu mai puțin de n valori non-nule |
df.fillna(x) |
Înlocuiește toate valorile nule într-un DataFrame cu x |
s.astype(float) |
Convertește tipul de date al Series în float |
s.replace(1, 'one') |
Înlocuiește toate valorile egale cu 1 cu ‘one’ |
s.replace([1,3], ['one', 'three']) |
Înlocuiește 1 cu ‘one’ și 3 cu ’three’ |
df.rename(columns=lambda x: x + 1) |
Redenumirea coloanelor în masă |
df.rename(columns={'old_name': 'new_name'}) |
Redenumirea selectivă a coloanelor |
df.set_index('column_one') |
Schimbarea coloanei index |
df.rename(index=lambda x: x + 1) |
Redenumirea indicilor în masă |
Importarea datelor
| Comandă | Descriere |
|---|---|
pd.read_csv(filename) |
Importă date dintr-un fișier CSV |
pd.read_table(filename) |
Importă date dintr-un fișier text cu delimitatori |
pd.read_excel(filename) |
Importă date dintr-un fișier Excel |
pd.read_sql(query, connection_object) |
Importă date dintr-un tabel/bază de date SQL |
pd.read_json(json_string) |
Importă date dintr-un șir JSON |
pd.read_html(url) |
Extrage tabele dintr-un URL, șir sau fișier HTML |
pd.read_clipboard() |
Prelucrează conținutul din clipboard și îl transmite către read_table() |
pd.DataFrame(dict) |
Importă date dintr-un obiect dicționar (Keys sunt nume de coloane, Values sunt date) |
Exportarea datelor
| Comandă | Descriere |
|---|---|
df.to_csv(filename) |
Exportă datele către un fișier CSV |
df.to_excel(filename) |
Exportă datele către un fișier Excel |
df.to_sql(table_name, connection_object) |
Exportă datele către un tabel SQL |
df.to_json(filename) |
Exportă datele către un fișier text în format JSON |
Procesarea datelor: Filter, Sort și GroupBy
| Comandă | Descriere |
|---|---|
df[df[col] > 0.5] |
Selectează rândurile unde valoarea din coloana ‘col’ este > 0,5 |
df.sort_values(col1) |
Sortează datele după coloana col1 (implicit ascendent) |
df.sort_values(col2, ascending=False) |
Sortează datele după coloana col2 în ordine descendentă |
df.sort_values([col1, col2], ascending=[True, False]) |
Sortează după col1 ascendent, apoi col2 descendent |
df.groupby(col) |
Returnează un obiect GroupBy grupat după coloana ‘col’ |
df.groupby([col1, col2]) |
Returnează un obiect GroupBy grupat după mai multe coloane |
df.groupby(col1)[col2].mean() |
Returnează media coloanei col2 pentru fiecare grup din col1 |
df.pivot_table(index=col1, values=[col2, col3], aggfunc=max) |
Creează un tabel pivot grupat după col1, calculând maximul pentru col2 și col3 |
df.groupby(col1).agg(np.mean) |
Returnează media pentru toate coloanele grupate după col1 |
df.apply(np.mean) |
Aplică funcția np.mean pe fiecare coloană |
df.apply(np.max, axis=1) |
Aplică funcția np.max pe fiecare rând |
Crearea obiectelor de test
| Comandă | Descriere |
|---|---|
pd.DataFrame(np.random.rand(20,5)) |
Creează un DataFrame cu 20 de rânduri și 5 coloane de numere aleatorii |
pd.Series(my_list) |
Creează o Series dintr-un obiect iterabil my_list |
df.index = pd.date_range('1900/1/30', periods=df.shape[0]) |
Adaugă un index de dată |
Vizualizarea și inspectarea datelor
| Comandă | Descriere |
|---|---|
df.head(n) |
Vizualizează primele n rânduri ale unui DataFrame |
df.tail(n) |
Vizualizează ultimele n rânduri ale unui DataFrame |
df.shape |
Vizualizează numărul de rânduri și coloane |
df.info() |
Vizualizează indexul, tipurile de date și informațiile despre memorie |
df.describe() |
Vizualizează statistici rezumative pentru coloanele numerice |
s.value_counts(dropna=False) |
Vizualizează valorile unice și numărul lor pentru o Series |
df.apply(pd.Series.value_counts) |
Vizualizează valorile unice și numărul lor pentru fiecare coloană dintr-un DataFrame |
Îmbinarea datelor
| Comandă | Descriere |
|---|---|
df1.append(df2) |
Adaugă rândurile din df2 la sfârșitul df1 |
pd.concat([df1, df2], axis=1) |
Adaugă coloanele din df2 la sfârșitul df1 |
df1.join(df2, on=col1, how='inner') |
SQL-style join între coloanele df1 și df2 |
Statistici de date
| Comandă | Descriere |
|---|---|
df.describe() |
Vizualizează statistici rezumative pentru coloanele numerice |
df.mean() |
Returnează media tuturor coloanelor |
df.corr() |
Returnează coeficientul de corelație între coloane |
df.count() |
Returnează numărul de valori non-nule din fiecare coloană |
df.max() |
Returnează valoarea maximă a fiecărei coloane |
df.min() |
Returnează valoarea minimă a fiecărei coloane |
df.median() |
Returnează mediana fiecărei coloane |
df.std() |
Returnează deviația standard a fiecărei coloane |