Pandas Cheat Sheet (Ściąga)
Szczegółowy przewodnik po korzystaniu z biblioteki Pandas.
Instalacja Pandas
| Polecenie | Opis |
|---|---|
conda install pandas |
Najlepszym sposobem na uzyskanie pandas jest użycie conda |
python3 -m pip install --upgrade pandas |
Przez PyPI |
pip install pandas |
Standardowa instalacja przez pip |
Kluczowe skróty i importowanie pakietów
| Skrót | Opis |
|---|---|
df |
Dowolny obiekt Pandas DataFrame |
s |
Dowolny obiekt Pandas Series |
Metody importu
| Polecenie | Opis |
|---|---|
import pandas as pd |
Importowanie pandas z aliasem pd |
import numpy as np |
Importowanie numpy z aliasem np |
Wybór danych
| Polecenie | Opis |
|---|---|
df[col] |
Zwraca kolumnę jako Series na podstawie nazwy kolumny |
df[[col1, col2]] |
Zwraca wiele kolumn jako DataFrame |
s.iloc[0] |
Wybór danych według pozycji |
s.loc['index_one'] |
Wybór danych według indeksu |
df.iloc[0,:] |
Zwraca pierwszy wiersz |
df.iloc[0,0] |
Zwraca pierwszy element pierwszej kolumny |
Czyszczenie danych
| Polecenie | Opis |
|---|---|
df.columns = ['a','b','c'] |
Zmiana nazw kolumn |
pd.isnull() |
Sprawdza wartości null w DataFrame; zwraca tablicę Boolean |
pd.notnull() |
Sprawdza wartości nie-null w DataFrame; zwraca tablicę Boolean |
df.dropna() |
Usuwa wszystkie wiersze zawierające wartości null |
df.dropna(axis=1) |
Usuwa wszystkie kolumny zawierające wartości null |
df.dropna(axis=1, thresh=n) |
Usuwa wszystkie wiersze z mniej niż n wartościami nie-null |
df.fillna(x) |
Zastępuje wszystkie wartości null w DataFrame wartością x |
s.astype(float) |
Konwertuje typ danych Series na float |
s.replace(1, 'one') |
Zastępuje wszystkie wartości równe 1 wartością ‘one’ |
s.replace([1,3], ['one', 'three']) |
Zastępuje 1 wartością ‘one’ oraz 3 wartością ’three’ |
df.rename(columns=lambda x: x + 1) |
Masowa zmiana nazw kolumn |
df.rename(columns={'old_name': 'new_name'}) |
Selektywna zmiana nazw kolumn |
df.set_index('column_one') |
Zmiana kolumny indeksu |
df.rename(index=lambda x: x + 1) |
Masowa zmiana nazw indeksów |
Importowanie danych
| Polecenie | Opis |
|---|---|
pd.read_csv(filename) |
Import danych z pliku CSV |
pd.read_table(filename) |
Import danych z pliku tekstowego z ogranicznikami |
pd.read_excel(filename) |
Import danych z pliku Excel |
pd.read_sql(query, connection_object) |
Import danych z tabeli/bazy danych SQL |
pd.read_json(json_string) |
Import danych z ciągu tekstowego JSON |
pd.read_html(url) |
Wyodrębnianie tabel z adresu URL, ciągu tekstowego lub pliku HTML |
pd.read_clipboard() |
Pobieranie zawartości ze schowka i przekazywanie jej do read_table() |
pd.DataFrame(dict) |
Import danych z obiektu słownika (klucze to nazwy kolumn, wartości to dane) |
Eksportowanie danych
| Polecenie | Opis |
|---|---|
df.to_csv(filename) |
Eksport danych do pliku CSV |
df.to_excel(filename) |
Eksport danych do pliku Excel |
df.to_sql(table_name, connection_object) |
Eksport danych do tabeli SQL |
df.to_json(filename) |
Eksport danych do pliku tekstowego w formacie JSON |
Przetwarzanie danych: Filter, Sort i GroupBy
| Polecenie | Opis |
|---|---|
df[df[col] > 0.5] |
Wybór wierszy, w których wartość w kolumnie ‘col’ jest > 0,5 |
df.sort_values(col1) |
Sortowanie danych według kolumny col1 (domyślnie rosnąco) |
df.sort_values(col2, ascending=False) |
Sortowanie danych według kolumny col2 malejąco |
df.sort_values([col1, col2], ascending=[True, False]) |
Sortowanie według col1 rosnąco, następnie col2 malejąco |
df.groupby(col) |
Zwraca obiekt GroupBy pogrupowany według kolumny ‘col’ |
df.groupby([col1, col2]) |
Zwraca obiekt GroupBy pogrupowany według wielu kolumn |
df.groupby(col1)[col2].mean() |
Zwraca średnią z kolumny col2 dla każdej grupy w col1 |
df.pivot_table(index=col1, values=[col2, col3], aggfunc=max) |
Tworzenie tabeli przestawnej pogrupowanej według col1, obliczającej maksimum dla col2 i col3 |
df.groupby(col1).agg(np.mean) |
Zwraca średnią dla wszystkich kolumn pogrupowanych według col1 |
df.apply(np.mean) |
Zastosowanie funkcji np.mean do każdej kolumny |
df.apply(np.max, axis=1) |
Zastosowanie funkcji np.max do każdego wiersza |
Tworzenie obiektów testowych
| Polecenie | Opis |
|---|---|
pd.DataFrame(np.random.rand(20,5)) |
Tworzy DataFrame z 20 wierszami i 5 kolumnami liczb losowych |
pd.Series(my_list) |
Tworzy Series z obiektu iterowalnego my_list |
df.index = pd.date_range('1900/1/30', periods=df.shape[0]) |
Dodawanie indeksu daty |
Przeglądanie i sprawdzanie danych
| Polecenie | Opis |
|---|---|
df.head(n) |
Przeglądanie pierwszych n wierszy DataFrame |
df.tail(n) |
Przeglądanie ostatnich n wierszy DataFrame |
df.shape |
Sprawdzanie liczby wierszy i kolumn |
df.info() |
Wyświetlanie indeksu, typów danych i informacji o pamięci |
df.describe() |
Wyświetlanie statystyk podsumowujących dla kolumn numerycznych |
s.value_counts(dropna=False) |
Wyświetlanie unikalnych wartości i liczników dla Series |
df.apply(pd.Series.value_counts) |
Wyświetlanie unikalnych wartości i liczników dla każdej kolumny w DataFrame |
Łączenie danych
| Polecenie | Opis |
|---|---|
df1.append(df2) |
Dołączanie wierszy z df2 na koniec df1 |
pd.concat([df1, df2], axis=1) |
Dołączanie kolumn z df2 na koniec df1 |
df1.join(df2, on=col1, how='inner') |
Łączenie (Join) w stylu SQL między kolumnami df1 i df2 |
Statystyki danych
| Polecenie | Opis |
|---|---|
df.describe() |
Wyświetlanie statystyk podsumowujących dla kolumn numerycznych |
df.mean() |
Zwraca średnią wszystkich kolumn |
df.corr() |
Zwraca współczynnik korelacji między kolumnami |
df.count() |
Zwraca liczbę wartości nie-null w każdej kolumnie |
df.max() |
Zwraca maksymalną wartość każdej kolumny |
df.min() |
Zwraca minimalną wartość każdej kolumny |
df.median() |
Zwraca medianę każdej kolumny |
df.std() |
Zwraca odchylenie standardowe każdej kolumny |