Details zum E-Book

Python w analizie danych. Przetwarzanie danych za pomocą pakietów pandas i NumPy oraz środowiska Jupyter. Wydanie III

Python w analizie danych. Przetwarzanie danych za pomocą pakietów pandas i NumPy oraz środowiska Jupyter. Wydanie III

Wes McKinney

E-book

Wprawny analityk danych potrafi z nich uzyskać wiedzę ułatwiającą podejmowanie trafnych decyzji. Od kilku lat można do tego używać nowoczesnych narzędzi Pythona, które zbudowano specjalnie do tego celu. Praca z nimi nie wymaga głębokiej znajomości statystyki czy algebry. Aby cieszyć się uzyskanymi rezultatami, wystarczy się wprawić w stosowaniu kilku pakietów i środowisk Pythona.

Ta książka jest trzecim, starannie zaktualizowanym wydaniem wyczerpującego przewodnika po narzędziach analitycznych Pythona. Uwzględnia Pythona 3.0 i bibliotekę pandas 1.4. Została napisana w przystępny sposób, a poszczególne zagadnienia bogato zilustrowano przykładami, studiami rzeczywistych przypadków i fragmentami kodu. W trakcie lektury nauczysz się korzystać z możliwości oferowanych przez pakiety pandas i NumPy, a także środowiska IPython i Jupyter. Nie zabrakło wskazówek dotyczących używania uniwersalnych narzędzi przeznaczonych do ładowania, czyszczenia, przekształcania i łączenia zbiorów danych. Pozycję docenią analitycy zamierzający zacząć pracę w Pythonie, jak również programiści Pythona, którzy chcą się zająć analizą danych i obliczeniami naukowymi.

Dzięki książce nauczysz się:

  • eksplorować dane za pomocą powłoki IPython i środowiska Jupyter
  • korzystać z funkcji pakietów NumPy i pandas
  • używać pakietu matplotlib do tworzenia czytelnych wizualizacji
  • analizować i przetwarzać dane regularnych i nieregularne szeregi czasowe
  • rozwiązywać rzeczywiste problemy analityczne

Wes McKinney zaktualizował swoją książkę, aby była podstawowym źródłem informacji o wszystkich zagadnieniach związanych z analizą danych przy użyciu języka Python i biblioteki pandas. Gorąco polecam tę pozycję!

Paul Barry, wykładowca i autor książek

Przedmowa

1. Wstęp

  • 1.1. O czym jest ta książka?
    • Jakie rodzaje danych?
  • 1.2. Dlaczego warto korzystać z Pythona w celu przeprowadzenia analizy danych?
    • Python jako spoiwo
    • Rozwiązywanie problemu "dwujęzyczności"
    • Dlaczego nie Python?
  • 1.3. Podstawowe biblioteki Pythona
    • NumPy
    • pandas
    • Matplotlib
    • IPython i Jupyter
    • SciPy
    • Scikit-learn
    • statsmodels
    • Inne pakiety
  • 1.4. Instalacja i konfiguracja
    • Windows
    • GNU, Linux
    • macOS
    • Instalacja niezbędnych pakietów
    • Zintegrowane środowiska programistyczne i edytory tekstowe
  • 1.5. Społeczność i konferencje
  • 1.6. Nawigacja po książce
    • Przykłady kodu
    • Przykładowe dane
    • Konwencje importowania

2. Podstawy Pythona oraz obsługi narzędzi IPython i Jupyter

  • 2.1. Interpreter Pythona
  • 2.2. Podstawy interpretera IPython
    • Uruchamianie powłoki IPython
    • Uruchamianie notatnika Jupyter Notebook
    • Uzupełnianie poleceń
    • Introspekcja
  • 2.3. Podstawy Pythona
    • Semantyka języka Python
    • Skalarne typy danych
    • Przepływ sterowania
  • 2.4. Podsumowanie

3. Wbudowane struktury danych, funkcje i pliki

  • 3.1. Struktury danych i sekwencje
    • Krotka
    • Lista
    • Słownik
    • Zbiór
    • Wbudowane funkcje obsługujące sekwencje
    • Lista, słownik i zbiór - składanie
  • 3.2. Funkcje
    • Przestrzenie nazw, zakres i funkcje lokalne
    • Zwracanie wielu wartości
    • Funkcje są obiektami
    • Funkcje anonimowe (lambda)
    • Generatory
    • Błędy i obsługa wyjątków
  • 3.3. Pliki i system operacyjny
    • Bajty i kodowanie Unicode w plikach
  • 3.4. Podsumowanie

4. Podstawy biblioteki NumPy: obsługa tablic i wektorów

  • 4.1. NumPy ndarray - wielowymiarowy obiekt tablicowy
    • Tworzenie tablic ndarray
    • Typ danych tablic ndarray
    • Działania matematyczne z tablicami NumPy
    • Podstawy indeksowania i przechwytywania części
    • Indeksowanie i wartości logiczne
    • Indeksowanie specjalne
    • Transponowanie tablic i zamiana osi
  • 4.2. Generowanie liczb pseudolosowych
  • 4.3. Funkcje uniwersalne - szybkie funkcje wykonywane na poszczególnych elementach tablicy
  • 4.4. Programowanie z użyciem tablic
    • Logiczne operacje warunkowe jako operacje tablicowe
    • Metody matematyczne i statystyczne
    • Metody tablic logicznych
    • Sortowanie
    • Wartości unikalne i operacje logiczne
  • 4.5. Tablice i operacje na plikach
  • 4.6. Algebra liniowa
  • 4.7. Przykład: błądzenie losowe
    • Jednoczesne symulowanie wielu błądzeń losowych
  • 4.8. Podsumowanie

5. Rozpoczynamy pracę z biblioteką pandas

  • 5.1. Wprowadzenie do struktur danych biblioteki pandas
    • Obiekt Series
    • Obiekt DataFrame
    • Obiekty index
  • 5.2. Podstawowe funkcjonalności
    • Uaktualnianie indeksu
    • Odrzucanie elementów osi
    • Indeksowanie, wybieranie i filtrowanie
    • Działania arytmetyczne i wyrównywanie danych
    • Funkcje apply i map
    • Sortowanie i tworzenie rankingów
    • Indeksy osi ze zduplikowanymi etykietami
  • 5.3. Podsumowywanie i generowanie statystyk opisowych
    • Współczynnik korelacji i kowariancja
    • Unikalne wartości, ich liczba i przynależność
  • 5.4. Podsumowanie

6. Odczyt i zapis danych, formaty plików

  • 6.1. Odczyt i zapis danych w formacie tekstowym
    • Wczytywanie części pliku tekstowego
    • Zapis danych w formacie tekstowym
    • Praca z plikami danych rozgraniczonych
    • Dane w formacie JSON
    • XML i HTML - web scraping
  • 6.2. Formaty danych binarnych
    • Wczytywanie plików programu Microsoft Excel
    • Obsługa formatu HDF5
  • 6.3. Obsługa interfejsów sieciowych
  • 6.4. Obsługa baz danych
  • 6.5. Podsumowanie

7. Czyszczenie i przygotowywanie danych

  • 7.1. Obsługa brakujących danych
    • Filtrowanie brakujących danych
    • Wypełnianie brakujących danych
  • 7.2. Przekształcanie danych
    • Usuwanie duplikatów
    • Przekształcanie danych przy użyciu funkcji lub mapowania
    • Zastępowanie wartości
    • Zmiana nazw indeksów osi
    • Dyskretyzacja i podział na koszyki
    • Wykrywanie i filtrowanie elementów odstających
    • Permutacje i próbkowanie losowe
    • Przetwarzanie wskaźników i zmiennych zastępczych
  • 7.3. Rozszerzone typy danych
  • 7.4. Operacje przeprowadzane na łańcuchach
    • Metody obiektu typu string
    • Wyrażenia regularne
    • Funkcje tekstowe w pakiecie pandas
  • 7.5. Dane kategoryczne
    • Kontekst i motywacja
    • Rozszerzony typ Categorical w bibliotece pandas
    • Obliczenia na obiektach typu Categorical
    • Metody obiektu kategorycznego
  • 7.6. Podsumowanie

8. Przetwarzanie danych - operacje łączenia, wiązania i przekształcania

  • 8.1. Indeksowanie hierarchiczne
    • Zmiana kolejności i sortowanie poziomów
    • Parametry statystyki opisowej z uwzględnieniem poziomu
    • Indeksowanie z kolumnami ramki danych
  • 8.2. Łączenie zbiorów danych
    • Łączenie ramek danych w stylu łączenia elementów baz danych
    • Łączenie przy użyciu indeksu
    • Konkatenacja wzdłuż osi
    • Łączenie częściowo nakładających się danych
  • 8.3. Zmiana kształtu i operacje osiowe
    • Przekształcenia z indeksowaniem hierarchicznym
    • Przekształcanie z formatu "długiego" na "szeroki"
    • Przekształcanie z formatu "szerokiego" na "długi"
  • 8.4. Podsumowanie

9. Wykresy i wizualizacja danych

  • 9.1. Podstawy obsługi interfejsu pakietu matplotlib
    • Obiekty figure i wykresy składowe
    • Kolory, oznaczenia i style linii
    • Punkty, etykiety i legendy
    • Adnotacje i rysunki
    • Zapisywanie wykresów w postaci plików
    • Konfiguracja pakietu matplotlib
  • 9.2. Generowanie wykresów za pomocą pakietów pandas i seaborn
    • Wykresy liniowe
    • Wykresy słupkowe
    • Histogramy i wykresy gęstości
    • Wykresy punktowe
    • Wykresy panelowe i dane kategoryczne
  • 9.3. Inne narzędzia przeznaczone do wizualizacji danych w Pythonie
  • 9.4. Podsumowanie

10. Agregacja danych i operacje wykonywane na grupach

  • 10.1. Mechanika interfejsu groupby
    • Iteracja po grupach
    • Wybieranie kolumny lub podzbioru kolumn
    • Grupowanie przy użyciu słowników i serii
    • Grupowanie przy użyciu funkcji
    • Grupowanie przy użyciu poziomów indeksu
  • 10.2. Agregacja danych
    • Przetwarzanie kolumna po kolumnie i stosowanie wielu funkcji
    • Zwracanie zagregowanych danych bez indeksów wierszy
  • 10.3. Metoda apply - ogólne zastosowanie techniki dziel-zastosuj-połącz
    • Usuwanie kluczy grup
    • Kwantyle i analiza koszykowa
    • Przykład: wypełnianie brakujących wartości przy użyciu wartości charakterystycznych dla grupy
    • Przykład: losowe generowanie próbek i permutacja
    • Przykład: średnie ważone grup i współczynnik korelacji
    • Przykład: regresja liniowa grup
  • 10.4. Transformacje grup i "nieobudowane" operacje grupowania
  • 10.5. Tabele przestawne i krzyżowe
    • Tabele krzyżowe
  • 10.6. Podsumowanie

11. Szeregi czasowe

  • 11.1. Typy danych i narzędzia przeznaczone do obsługi daty i czasu
    • Konwersja pomiędzy obiektami string i datetime
  • 11.2. Podstawy szeregów czasowych
    • Indeksowanie i wybieranie
    • Szeregi czasowe z duplikatami indeksów
  • 11.3. Zakresy dat, częstotliwości i przesunięcia
    • Generowanie zakresów dat
    • Częstotliwości i przesunięcia daty
    • Przesuwanie daty
  • 11.4. Obsługa strefy czasowej
    • Lokalizacja i konwersja stref czasowych
    • Operacje z udziałem obiektów Timestamp o wyznaczonej strefie czasowej
    • Operacje pomiędzy różnymi strefami czasowymi
  • 11.5. Okresy i przeprowadzanie na nich operacji matematycznych
    • Konwersja częstotliwości łańcuchów
    • Kwartalne częstotliwości okresów
    • Konwersja znaczników czasu na okresy (i z powrotem)
    • Tworzenie obiektów PeriodIndex na podstawie tablic
  • 11.6. Zmiana rozdzielczości i konwersja częstotliwości
    • Zmniejszanie częstotliwości
    • Zwiększanie rozdzielczości i interpolacja
    • Zmiana rozdzielczości z okresami
    • Grupowa zmiana częstotliwości
  • 11.7. Funkcje ruchomego okna
    • Funkcje ważone wykładniczo
    • Binarne funkcje ruchomego okna
    • Funkcje ruchomego okna definiowane przez użytkownika
  • 11.8. Podsumowanie

12. Wprowadzenie do bibliotek modelujących

  • 12.1. Łączenie pandas z kodem modelu
  • 12.2. Tworzenie opisów modeli przy użyciu biblioteki Patsy
    • Przekształcenia danych za pomocą formuł Patsy
    • Patsy i dane kategoryczne
  • 12.3. Wprowadzenie do biblioteki statsmodels
    • Szacowanie modeli liniowych
    • Szacowanie procesów szeregów czasowych
  • 12.4. Wprowadzenie do pakietu scikit-learn
  • 12.5. Podsumowanie

13. Przykłady analizy danych

  • 13.1. Dane USA.gov serwisu Bitly
    • Liczenie stref czasowych w czystym Pythonie
    • Liczenie stref czasowych przy użyciu pakietu pandas
  • 13.2. Zbiór danych MovieLens 1M
    • Wyznaczenie rozbieżności ocen
  • 13.3. Imiona nadawane dzieciom w USA w latach 1880 - 2010
    • Analiza trendów imion
  • 13.4. Baza danych USDA Food
  • 13.5. Baza danych 2012 Federal Election Commission
    • Statystyki datków z podziałem na wykonywany zawód i pracodawcę
    • Podział kwot datków na koszyki
    • Statystyki datków z podziałem na poszczególne stany
  • 13.6. Podsumowanie

A. Zaawansowane zagadnienia związane z biblioteką NumPy

  • A.1. Szczegóły budowy obiektu ndarray
    • Hierarchia typów danych NumPy
  • A.2. Zaawansowane operacje tablicowe
    • Zmiana wymiarów tablic
    • Kolejności charakterystyczne dla języków C i Fortran
    • Łączenie i dzielenie tablic
    • Powtarzanie elementów - funkcje tile i repeat
    • Alternatywy indeksowania specjalnego - metody take i put
  • A.3. Rozgłaszanie
    • Rozgłaszanie wzdłuż innych osi
    • Przypisywanie wartości elementom tablicy poprzez rozgłaszanie
  • A.4. Zaawansowane zastosowania funkcji uniwersalnych
    • Metody instancji funkcji uniwersalnych
    • Pisanie nowych funkcji uniwersalnych w Pythonie
  • A.5. Tablice o złożonej strukturze
    • Zagnieżdżone typy danych i pola wielowymiarowe
    • Do czego przydają się tablice o złożonej strukturze?
  • A.6. Jeszcze coś o sortowaniu
    • Sortowanie pośrednie - metody argsort i lexsort
    • Alternatywne algorytmy sortowania
    • Częściowe sortowanie tablic
    • Wyszukiwanie elementów w posortowanej tablicy za pomocą metody numpy.searchsorted
  • A.7. Pisanie szybkich funkcji NumPy za pomocą pakietu Numba
    • Tworzenie obiektów numpy.ufunc za pomocą pakietu Numba
  • A.8. Zaawansowane tablicowe operacje wejścia i wyjścia
    • Pliki mapowane w pamięci
    • HDF5 i inne możliwości zapisu tablic
  • A.9. Jak zachować wysoką wydajność?
    • Dlaczego warto korzystać z sąsiadujących ze sobą obszarów pamięci?

B. Dodatkowe informacje dotyczące systemu IPython

  • B.1. Skróty klawiaturowe
  • B.2. Magiczne polecenia
    • Polecenie %run
    • Uruchamianie kodu zapisanego w schowku
  • B.3. Korzystanie z historii poleceń
    • Przeszukiwanie i korzystanie z historii poleceń
    • Zmienne wejściowe i wyjściowe
  • B.4. Interakcja z systemem operacyjnym
    • Polecenia powłoki systemowej i aliasy
    • System tworzenia skrótów do katalogów
  • B.5. Narzędzia programistyczne
    • Interaktywny debuger
    • Pomiar czasu - funkcje %time i %timeit
    • Podstawowe profilowanie - funkcje %prun i %run-p
    • Profilowanie funkcji linia po linii
  • B.6. Wskazówki dotyczące produktywnego tworzenia kodu w środowisku IPython
    • Przeładowywanie modułów
    • Wskazówki dotyczące projektowania kodu
  • B.7. Zaawansowane funkcje środowiska IPython
    • Profile i konfiguracja
  • B.8. Podsumowanie
  • Titel: Python w analizie danych. Przetwarzanie danych za pomocą pakietów pandas i NumPy oraz środowiska Jupyter. Wydanie III
  • Autor: Wes McKinney
  • Originaler Titel: Python for Data Analysis: Data Wrangling with pandas, NumPy, and Jupyter, 3rd Edition
  • Übersetzung: Andrzej Watrak
  • ISBN: 978-83-8322-324-7, 9788383223247
  • Veröffentlichungsdatum: 2023-07-04
  • Format: E-book
  • Artikelkennung: pyanda
  • Verleger: Helion