Definicja #
pandas to open-source'owa biblioteka języka Python do analizy i manipulacji danymi strukturalnymi i tabelarycznymi, stworzona przez Wesa McKinneya w 2008 roku (pierwotnie w firmie AQR Capital Management). Nazwa pochodzi od "panel data" — ekonometrycznego terminu dla wielowymiarowych danych). Pandas jest fundamentem ekosystemu Python Data Science razem z NumPy, Matplotlib i scikit-learn.
Kluczowe struktury danych:
- DataFrame — dwuwymiarowa tabela z wierszami i kolumnami (jak arkusz Excela lub tabela SQL); kolumny mogą mieć różne typy danych
- Series — jednowymiarowa tablica z etykietami indeksu; jedna kolumna DataFrame lub wektor danych
Najważniejsze operacje pandas:
- I/O —
read_csv(),read_excel(),read_sql(),read_json(),to_csv() - Selekcja —
df['kolumna'],df.loc[](label-based),df.iloc[](integer-based) - Filtrowanie — warunki boolowskie:
df[df['wiek'] > 30] - Grupowanie —
groupby()z agregacjami (sum, mean, count, agg) - Łączenie —
merge()(JOIN jak w SQL),concat() - Czyszczenie danych —
dropna(),fillna(),drop_duplicates(),astype() - Operacje na datach — parsing dat, resample(), rolling(), dt accessor
- Apply —
apply(),map(),transform()do stosowania funkcji na danych
Zastosowania #
pandas stosuje się do:
- Eksploracyjnej analizy danych (EDA) — szybkie opisowe statystyki, wykrywanie brakujących wartości, rozkłady danych przed budową modeli ML
- Czyszczenia i przygotowania danych — standaryzacja formatów, obsługa braków danych, transformacje przed załadowaniem do modelu lub bazy danych
- Raportowania i analityki biznesowej — agregacje sprzedaży, kohorty klientów, analiza odchyleń w Jupyter Notebook lub z eksportem do Excela
- Przetwarzania ETL — wczytywanie danych z CSV/SQL, transformacja i zapis do innego formatu lub bazy danych
- Feature engineering dla ML — tworzenie nowych cech z istniejących danych: lag features, rolling statistics, one-hot encoding
Ścieżka nauki #
pandas jest pierwszą biblioteką, której uczy się każdy data scientist lub analityk w Pythonie.
Zacznij od:
- Instalacja:
pip install pandas; środowisko: Jupyter Notebook lub JupyterLab - Tworzenie DataFrame z danych i wczytywanie CSV:
pd.read_csv('dane.csv') - Podstawowe operacje: przeglądanie (
head(),info(),describe()), selekcja kolumn, filtrowanie wierszy - Grupowanie:
groupby()+agg()— odpowiednik GROUP BY z SQL - Łączenie tabel:
merge()— odpowiednik JOIN z SQL
Następnie pogłębiaj:
- Obsługa dat:
pd.to_datetime(),resample(),DatetimeIndex - NumPy — fundament pandas; operacje wektorowe, tablice ndarray
- Wizualizacja: Matplotlib, Seaborn integrujące się z pandas DataFrame
- Wydajność:
vectorizationzamiast pętli,categoricaltyp danych, Polars jako szybsza alternatywa dla dużych danych - Integracja z SQLAlchemy —
read_sql()ito_sql()do pracy z bazami danych
FAQ #
- Czym różni się pandas od NumPy?
- NumPy dostarcza wydajne wielowymiarowe tablice (ndarray) i operacje matematyczne na nich — jest fundament niskopoziomowy. pandas buduje na NumPy, dodając DataFrame z etykietowanymi kolumnami, obsługę brakujących danych (NaN), I/O (CSV, SQL, Excel) i API do analizy danych. pandas jest wyżej poziomowy i wygodniejszy do pracy z danymi tabelarycznymi.
- Czy pandas radzi sobie z dużymi zbiorami danych?
- pandas ładuje dane do pamięci RAM — jest odpowiedni dla danych do kilku GB (w zależności od dostępnej RAM). Przy większych danych używa się Polars (szybsza alternatywa), Dask (pandas API z równoległym przetwarzaniem) lub PySpark (Apache Spark). Dla danych produkcyjnych big data pandas nie jest właściwym wyborem.
- Czym jest DataFrame w pandas?
- DataFrame to główna struktura danych pandas — dwuwymiarowa, etykietowana tabela danych z kolumnami różnych typów, podobna do arkusza Excela lub tabeli SQL. Każda kolumna to Series (jednowymiarowa). DataFrame obsługuje operacje takie jak filtrowanie, grupowanie, merge i pivotowanie.
- Ile zarabia Data Analyst znający pandas?
- Data Analyst z doświadczeniem w Python/pandas zarabia w Polsce od 8 000 do 16 000 zł brutto. Data Scientist z zaawansowaną analityką i ML zarabia od 14 000 do 25 000 zł. pandas to wymagana, podstawowa umiejętność w tych rolach — sama w sobie nie jest wyróżnikiem, ale jej brak jest dyskwalifikujący.