E-book details

Jak analizować dane z biblioteką Pandas. Praktyczne wprowadzenie. Wydanie II

Jak analizować dane z biblioteką Pandas. Praktyczne wprowadzenie. Wydanie II

Daniel Y. Chen

Ebook

Wprawny analityk potrafi się posługiwać zbiorami danych o wysokiej dynamice i różnorodności. Działanie to ułatwia biblioteka open source Pandas, która pozwala, przy użyciu języka Python, zrealizować niemal każde zadanie wymagające analizy danych. Pandas może pomóc w zapewnieniu wiarygodności danych, wizualizowaniu ich pod kątem efektywnego podejmowania decyzji i analizowaniu wielu zbiorów danych.

Oto drugie, zaktualizowane i uzupełnione wydanie przewodnika po bibliotece Pandas. Dzięki tej przystępnej książce nauczysz się w pełni korzystać z możliwości oferowanych przez bibliotekę, nawet jeśli dopiero zaczynasz przygodę z analizą danych w Pythonie. Naukę rozpoczniesz z użyciem rzeczywistego zbioru danych, aby wkrótce rozwiązywać złożone problemy danologii, takie jak obsługa brakujących danych, stosowanie regularyzacji czy też używanie metod nienadzorowanego uczenia maszynowego do odnajdywania podstawowej struktury w zbiorze danych. Pracę z poszczególnymi zagadnieniami ułatwia to, że zostały one zilustrowane prostymi, ale praktycznymi przykładami.

W książce:

  • importowanie i eksportowanie danych, przygotowywanie ich zbiorów
  • tworzenie wykresów za pomocą bibliotek matplotlib, seaborn i Pandas
  • konwersja typów danych
  • skalowanie operacji przetwarzania danych
  • zaawansowane możliwości biblioteki Pandas powiązane z datami i czasem
  • dopasowywanie modeli liniowych przy użyciu bibliotek statsmodels i scikit-learn

Analizuj zbiory danych i odkrywaj ukrytą w nich wiedzę!

Słowo wstępne do wydania drugiego

Słowo wstępne do wydania pierwszego

Przedmowa

Podziękowania

O autorze

Zmiany w wydaniu drugim

Część I. Wprowadzenie

  • Rozdział 1. Typ danych DataFrame biblioteki Pandas - podstawy
    • 1.1. Wprowadzenie
    • Cele rozdziału
    • 1.2. Ładowanie pierwszego zbioru danych
    • 1.3. Sprawdzanie kolumn, wierszy i komórek
      • 1.3.1. Wybieranie i określanie podzbioru kolumn na podstawie nazwy
      • 1.3.2. Określanie podzbioru wierszy
      • 1.3.3. Określanie podzbioru wierszy za pomocą numeru wiersza: atrybut .iloc[]
      • 1.3.4. Użycie kombinacji
      • 1.3.5. Określanie podzbioru wierszy i kolumn
    • 1.4. Obliczenia grupowane i agregowane
      • 1.4.1. Średnie grupowane
      • 1.4.2. Liczebności grupowane
    • 1.5. Podstawowy wykres
    • Podsumowanie
  • Rozdział 2. Struktury danych biblioteki Pandas - podstawy
    • Cele rozdziału
    • 2.1. Tworzenie własnych danych
      • 2.1.1. Tworzenie obiektu Series
      • 2.1.2. Tworzenie obiektu DataFrame
    • 2.2. Obiekty Series
      • 2.2.1. Obiekt Series przypomina typ ndarray
      • 2.2.2. Określanie podzbioru wartości boolowskich: obiekt Series
      • 2.2.3. Operacje są automatycznie wyrównywane i wektoryzowane (rozgłaszanie)
    • 2.3. Obiekt DataFrame
      • 2.3.1. Części obiektu DataFrame
      • 2.3.2. Określanie podzbioru wartości boolowskich: obiekty DataFrame
      • 2.3.3. Operacje są automatycznie wyrównywane i wektoryzowane (rozgłaszanie)
    • 2.4. Wprowadzanie zmian w obiektach Series i DataFrame
      • 2.4.1. Dodawanie dodatkowych kolumn
      • 2.4.2. Bezpośrednie modyfikowanie kolumny
      • 2.4.3. Modyfikowanie kolumn za pomocą metody .assign()
      • 2.4.4. Usuwanie wartości
    • 2.5. Eksportowanie i importowanie danych
      • 2.5.1. "Peklowanie"
      • 2.5.2. Format danych CSV
      • 2.5.3. Excel
      • 2.5.4. Format Feather
      • 2.5.5. Projekt Arrow
      • 2.5.6. Słownik
      • 2.5.7. Format JSON
      • 2.5.8. Inne typy danych wyjściowych
    • Podsumowanie
  • Rozdział 3. Tworzenie wykresów - podstawy
    • Cele rozdziału
    • 3.1. Dlaczego warto wizualizować dane?
    • 3.2. Podstawy obsługi biblioteki matplotlib
      • 3.2.1. Obiekty rysunków i podwykresy z osiami
      • 3.2.2. Anatomia rysunku
    • 3.3. Tworzenie graficznych wizualizacji danych statystycznych za pomocą biblioteki matplotlib
      • 3.3.1. Jednozmienność (pojedyncza zmienna)
      • 3.3.2. Dwuzmienność (dwie zmienne)
      • 3.3.3. Dane wielozmienne
    • 3.4. Biblioteka seaborn
      • 3.4.1. Jednozmienność
      • 3.4.2. Dane dwuzmienne
      • 3.4.3. Dane wielozmienne
      • 3.4.4. Aspekty
      • 3.4.5. Style i kompozycje biblioteki seaborn
      • 3.4.6. Jak korzystać z dokumentacji biblioteki seaborn?
      • 3.4.7. Interfejs biblioteki seaborn następnej generacji
    • 3.5. Metoda tworzenia wykresów za pomocą biblioteki Pandas
      • 3.5.1. Histogram
      • 3.5.2. Wykres gęstości
      • 3.5.3. Wykres punktowy
      • 3.5.4. Wykres przedziałów sześciokątnych (hexbin)
      • 3.5.5. Wykres pudełkowy
    • Podsumowanie
  • Rozdział 4. Dane uporządkowane
    • Cele rozdziału
      • Uwaga dotycząca niniejszego rozdziału
    • 4.1. Kolumny zawierają wartości, a nie zmienne
      • 4.1.1. Utrwalenie jednej kolumny
      • 4.1.2. Utrwalenie wielu kolumn
    • 4.2. Kolumny zawierają wiele zmiennych
      • 4.2.1. Osobne dzielenie i dodawanie kolumn
      • 4.2.2. Dzielenie i łączenie kolumn w jednym kroku
    • 4.3. Zmienne znajdują się w wierszach i kolumnach
    • Podsumowanie
  • Rozdział 5. Zastosowanie funkcji
    • Cele rozdziału
      • Uwaga dotycząca niniejszego rozdziału
    • 5.1. Elementarz funkcji
    • 5.2. Zastosowanie funkcji (podstawy)
      • 5.2.1. Zastosowanie funkcji względem obiektu Series
      • 5.2.2. Zastosowanie funkcji względem obiektu DataFrame
    • 5.3. Funkcje wektoryzowane
      • 5.3.1. Wektoryzacja za pomocą biblioteki NumPy
      • 5.3.2. Wektoryzacja za pomocą biblioteki Numba
    • 5.4. Funkcje lambda (funkcje anonimowe)
    • Podsumowanie

Część II. Przetwarzanie danych

  • Rozdział 6. Łączenie danych
    • Cele rozdziału
    • 6.1. Łączenie zbiorów danych
    • 6.2. Konkatenacja
      • 6.2.1. Części przeglądowe obiektu DataFrame
      • 6.2.2. Dodawanie wierszy
      • 6.2.3. Dodawanie kolumn
      • 6.2.4. Konkatenacja z różnymi indeksami
    • 6.3. Jednostki obserwacyjne w obrębie wielu tabel
      • 6.3.1. Ładowanie wielu plików za pomocą pętli
      • 6.3.2. Ładowanie wielu plików przy użyciu listy składanej
    • 6.4. Scalanie wielu zbiorów danych
      • 6.4.1. Scalanie typu "jedna z jedną"
      • 6.4.2. Scalanie typu "wiele z jedną"
      • 6.4.3. Scalanie typu "wiele z wieloma"
      • 6.4.4. Sprawdzanie wyników pracy za pomocą asercji
    • Podsumowanie
  • Rozdział 7. Normalizacja danych
    • Cele rozdziału
    • 7.1. Wiele jednostek obserwacyjnych w tabeli (normalizacja)
    • Podsumowanie
  • Rozdział 8. Operacje grupowania: dzielenie, stosowanie i łączenie
    • Cele rozdziału
    • 8.1. Agregacja
      • 8.1.1. Podstawowa agregacja danych grupowanych z jedną zmienną
      • 8.1.2. Wbudowane metody agregacji
      • 8.1.3. Funkcje agregacji
      • 8.1.4. Użycie wielu funkcji jednocześnie
      • 8.1.5. Zastosowanie słownika w metodzie .agg() lub .aggregate()
    • 8.2. Transformacja
      • 8.2.1. Przykład wyniku standardowego z
      • 8.2.2. Przykład z brakującymi wartościami
    • 8.3. Filtrowanie
    • 8.4. Obiekt pandas.core.groupby.DataFrameGroupBy
      • 8.4.1. Grupy
      • 8.4.2. Obliczenia w ramach grupowania obejmujące wiele zmiennych
      • 8.4.3. Wybieranie grupy
      • 8.4.4. Iteracja w obrębie grup
      • 8.4.5. Wiele grup
      • 8.4.6. "Spłaszczanie" wyników (.reset_index())
    • 8.5. Zastosowanie obiektu MultiIndex
    • Podsumowanie

Część III. Typy danych

  • Rozdział 9. Brakujące dane
    • Cele rozdziału
    • 9.1. Czym jest wartość NaN?
    • 9.2. Skąd biorą się brakujące wartości?
      • 9.2.1. Ładowanie danych
      • 9.2.2. Scalone dane
      • 9.2.3. Wartości wprowadzane przez użytkownika
      • 9.2.4. Ponowne indeksowanie
    • 9.3. Zajmowanie się brakującymi danymi
      • 9.3.1. Znajdowanie brakujących danych i określanie ich ilości
      • 9.3.2. Oczyszczanie danych z brakującymi wartościami
      • 9.3.3. Obliczenia uwzględniające brakujące dane
    • 9.4. Brakująca wartość NA wbudowana w bibliotece Pandas
    • Podsumowanie
  • Rozdział 10. Typy danych
    • Cele rozdziału
    • 10.1. Typy danych
    • 10.2. Przekształcanie typów
      • 10.2.1. Konwersja do postaci obiektów łańcuchów
      • 10.2.2. Przekształcanie w wartości liczbowe
    • 10.3. Dane kategorialne
      • 10.3.1. Przekształcanie w kategorię
      • 10.3.2. Przetwarzanie danych kategorialnych
    • Podsumowanie
  • Rozdział 11. Łańcuchy i dane tekstowe
    • Wprowadzenie
    • Cele rozdziału
    • 11.1. Łańcuchy
      • 11.1.1. Określanie podzbioru i dzielenie łańcuchów
      • 11.1.2. Uzyskanie ostatniego znaku łańcucha
    • 11.2. Metody łańcuchowe
    • 11.3. Dodatkowe metody łańcuchowe
      • 11.3.1. Metoda join
      • 11.3.2. Metoda splitlines
    • 11.4. Formatowanie łańcuchów (f-łańcuchy)
      • 11.4.1. Formatowanie liczb
    • 11.5. Wyrażenia regularne
      • 11.5.1. Dopasowanie wzorca
      • 11.5.2. Pamiętaj, jakich używasz wzorców wyrażeń regularnych
      • 11.5.3. Znajdowanie wzorca
      • 11.5.4. Zastępowanie wzorca
      • 11.5.5. Kompilowanie wzorca
    • 11.6. Biblioteka regex
    • Podsumowanie
  • Rozdział 12. Daty i godziny
    • Cele rozdziału
    • 12.1. Obiekt datetime języka Python
    • 12.2. Przekształcanie do postaci ramki danych
    • 12.3. Ładowanie danych zawierających daty
    • 12.4. Wyodrębnianie składników daty
    • 12.5. Obliczenia obejmujące daty i obiekty timedelta
    • 12.6. Metody obiektu datetime
    • 12.7. Uzyskiwanie danych notowań giełdowych
    • 12.8. Określanie podzbioru danych na podstawie dat
      • 12.8.1. Obiekt DatetimeIndex
      • 12.8.2. Obiekt TimedeltaIndex
    • 12.9. Zakresy dat
      • 12.9.1. Częstotliwości
      • 12.9.2. Przesunięcia
    • 12.10. Wartości przesuwające
    • 12.11. Ponowne próbkowanie
    • 12.12. Strefy czasowe
    • 12.13. Biblioteka Arrow do lepszej obsługi dat i godzin
    • Podsumowanie

Część IV. Modelowanie danych

  • Rozdział 13. Regresja liniowa (wynikowa zmienna ciągła)
    • 13.1. Prosta regresja liniowa
      • 13.1.1. Użycie biblioteki statsmodels
      • 13.1.2. Zastosowanie biblioteki scikit-learn (sklearn)
    • 13.2. Regresja wielokrotna
      • 13.2.1. Użycie biblioteki statsmodels
      • 13.2.2. Zastosowanie biblioteki scikit-learn (sklearn)
    • 13.3. Modele ze zmiennymi kategorialnymi
      • 13.3.1. Zmienne kategorialne w bibliotece statsmodels
      • 13.3.2. Zmienne kategorialne w bibliotece scikit-learn (sklearn)
    • 13.4. Kodowanie One-Hot w bibliotece scikit-learn z wykorzystaniem potoków transformera
    • Podsumowanie
  • Rozdział 14. Uogólnione modele liniowe
    • Coś o tym rozdziale
    • 14.1. Regresja logistyczna (binarna zmienna wyjściowa)
      • 14.1.1. Użycie biblioteki statsmodels
      • 14.1.2. Zastosowanie biblioteki sklearn
      • 14.1.3. Zachowaj ostrożność w przypadku domyślnych wartości biblioteki scikit-learn (sklearn)
    • 14.2. Regresja Poissona (ilościowa zmienna wynikowa)
      • 14.2.1. Użycie biblioteki statsmodels
      • 14.2.2. Ujemna regresja dwumianowa w przypadku nadmiernej dyspersji
    • 14.3. Bardziej uogólnione modele liniowe
    • Podsumowanie
  • Rozdział 15. Analiza przeżycia
    • 15.1. Dane analizy przeżycia
    • 15.2. Krzywe Kaplana-Meiera
    • 15.3. Model proporcjonalnego hazardu Coxa
      • 15.3.1. Testowanie założeń modelu Coxa
    • Podsumowanie
  • Rozdział 16. Diagnostyka modeli
    • 16.1. Residua
      • 16.1.1. Wykresy kwantylowe K-K
    • 16.2. Porównanie wielu modeli
      • 16.2.1. Korzystanie z modeli liniowych
      • 16.2.2. Zastosowanie uogólnionych modeli liniowych
    • 16.3. Walidacja krzyżowa k-krotna
    • Podsumowanie
  • Rozdział 17. Regularyzacja
    • 17.1. Dlaczego regularyzacja?
    • 17.2. Regresja LASSO
    • 17.3. Regresja grzbietowa
    • 17.4. Sieć elastyczna
    • 17.5. Walidacja krzyżowa
    • Podsumowanie
  • Rozdział 18. Klasteryzacja
    • 18.1. k-średnie
      • 18.1.1. Ograniczanie liczby wymiarów za pomocą analizy PCA
    • 18.2. Klastrowanie hierarchiczne
      • 18.2.1. Klastrowanie kompletne
      • 18.2.2. Klastrowanie pojedyncze
      • 18.2.3. Klastrowanie ze średnią
      • 18.2.4. Klastrowanie z centroidem
      • 18.2.5. Klastrowanie metodą Warda
      • 18.2.6. Ręczne ustawianie progu
    • Podsumowanie

Część V. Podsumowanie

  • Rozdział 19. Świat poza obrębem biblioteki Pandas
    • 19.1. Stos do obliczeń (naukowych)
    • 19.2. Wydajność
      • 19.2.1. Pomiar czasu wykonywania kodu
      • 19.2.2. Profilowanie kodu
      • 19.2.3. Moduł concurrent.futures
    • 19.3. Dask
    • 19.4. Siuba
    • 19.5. Ibis
    • 19.6. Polars
    • 19.7. PyJanitor
    • 19.8. Pandera
    • 19.9. Uczenie maszynowe
    • 19.10. Publikowanie
    • 19.11. Panele kontrolne
    • Podsumowanie
  • Rozdział 20. Działanie w pojedynkę jest niebezpieczne!
    • 20.1. Lokalne spotkania
    • 20.2. Konferencje
    • 20.3. The Carpentries
    • 20.4. Podcasty
    • 20.5. Inne zasoby
    • Podsumowanie

Dodatki

  • Dodatek A. Mapy pojęć
  • Dodatek B. Instalacja i konfiguracja
    • B.1. Instalacja języka Python
      • B.1.1. Anaconda
      • B.1.2. Miniconda
      • B.1.3. Odinstalowywanie dystrybucji Anaconda lub Miniconda
      • B.1.4. pyenv
    • B.2. Instalowanie pakietów języka Python
    • B.3. Pobieranie zbiorów danych używanych w książce
  • Dodatek C. Wiersz poleceń
    • C.1. Instalacja
      • C.1.1. System Windows
      • C.1.2. System Mac
      • C.1.3. System Linux
    • C.2. Podstawy
  • Dodatek D. Szablony projektowe
  • Dodatek E. Zastosowanie języka Python
    • E.1. Wiersz poleceń i edytor tekstu
    • E.2. Python i IPython
    • E.3. Jupyter
    • E.4. Zintegrowane środowiska programistyczne IDE
  • Dodatek F. Katalogi robocze
  • Dodatek G. Środowiska
    • G.1. Środowiska systemu conda
    • G.2. Pyenv + Pipenv
  • Dodatek H. Instalacja pakietów
    • H.1. Aktualizowanie pakietów
  • Dodatek I. Importowanie bibliotek
  • Dodatek J. Styl kodu
    • J.1. Znaki podziału wiersza w kodzie
  • Dodatek K. Kontenery: listy, krotki i słowniki
    • K.1. Listy
    • K.2. Krotki
    • K.3. Słowniki
  • Dodatek L. Określanie wartości za pomocą składni wycinków
  • Dodatek M. Pętle
  • Dodatek N. Listy składane
  • Dodatek O. Funkcje
    • O.1. Parametry domyślne
    • O.2. Parametry arbitralne
      • O.2.1. Wyrażenie *args
      • O.2.2. Wyrażenie **kwargs
  • Dodatek P. Zakresy i generatory
  • Dodatek Q. Przypisanie wielokrotne
  • Dodatek R. Typ ndarray biblioteki NumPy
  • Dodatek S. Klasy
  • Dodatek T. Komunikat SettingWithCopyWarning
    • T.1. Modyfikowanie podzbioru danych
    • T.2. Zastępowanie wartości
    • T.3. Dodatkowe zasoby informacji
  • Dodatek U. Tworzenie łańcuchów metod
  • Dodatek V. Czas wykonywania kodu
  • Dodatek W. Formatowanie łańcuchów
    • W.1. Formatowanie w stylu języka C
    • W.2. Formatowanie łańcuchów: metoda .format()
    • W.3. Formatowanie liczb
  • Dodatek X. Instrukcje warunkowe (if-elif-else)
  • Dodatek Y. Przykład regresji logistycznej ze zbiorem danych ACS dla Nowego Jorku
    • Y.0.1. Użycie biblioteki sklearn
  • Dodatek Z. Replikowanie wyników za pomocą języka R
    • Z.1. Regresja liniowa
    • Z.2. Regresja logistyczna
    • Z.3. Regresja Poissona
      • Z.3.1. Ujemna regresja dwumianowa w przypadku nadmiernej dyspersji

Skorowidz

  • Title: Jak analizować dane z biblioteką Pandas. Praktyczne wprowadzenie. Wydanie II
  • Author: Daniel Y. Chen
  • Original title: Pandas for Everyone: Python Data Analysis (Addison-Wesley Data & Analytics Series), 2nd Edition
  • Translation: Piotr Pilch
  • ISBN: 978-83-289-0152-0, 9788328901520
  • Date of issue: 2024-01-16
  • Format: Ebook
  • Item ID: jaanp2
  • Publisher: Helion