Python w analizie danych. Przetwarzanie danych za pomocą pakietów pandas i NumPy oraz środowiska Jupyter - ebook
Python w analizie danych. Przetwarzanie danych za pomocą pakietów pandas i NumPy oraz środowiska Jupyter - ebook
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
Spis treści
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
Kategoria: | Programowanie |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-8322-324-7 |
Rozmiar pliku: | 5,4 MB |