Python w analizie danych. Przetwarzanie danych za pomocą pakietów Pandas i NumPy oraz środowiska IPython. Wydanie II - Helion

Tytuł oryginału: Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython, 2nd Edition
Tłumaczenie: Konrad Matuk
ISBN: 978-83-283-4082-4
stron: 480, Format: ebook
Data wydania: 2018-06-01
Księgarnia: Helion
Cena książki: 66,75 zł (poprzednio: 89,00 zł)
Oszczędzasz: 25% (-22,25 zł)
Analiza danych staÅ‚a siÄ™ samodzielnÄ… dyscyplinÄ… wiedzy interesujÄ…cÄ… specjalistów z wielu branż: analityków biznesowych, statystyków, architektów oprogramowania czy też osoby zajmujÄ…ce siÄ™ sztucznÄ… inteligencjÄ…. Wydobywanie informacji ze zbiorów danych pozwala na uzyskanie wiedzy niedostÄ™pnej w inny sposób. W tym celu dane trzeba odpowiednio przygotować, oczyÅ›cić, przetworzyć i oczywiÅ›cie poddać analizie. Warto również zadbać o ich wizualizacjÄ™. Do tych wszystkich zadaÅ„ najlepiej wykorzystać specjalne narzÄ™dzia opracowane w jÄ™zyku Python.
Prezentowana książka jest drugim, zaktualizowanym i uzupeÅ‚nionym, wydaniem klasycznego podrÄ™cznika napisanego z myÅ›lÄ… o analitykach, którzy dotychczas nie pracowali w Pythonie, oraz o programistach Pythona, którzy nie zajmowali siÄ™ dotÄ…d analizÄ… danych ani obliczeniami naukowymi. Przedstawiono tu możliwoÅ›ci oferowane przez Pythona 3.6 oraz najnowsze funkcje pakietów Pandas i NumPy, a także Å›rodowisk IPython i Jupyter. Przy opisie poszczególnych narzÄ™dzi analitycznych wyjaÅ›niono ich dziaÅ‚anie i zaprezentowano przykÅ‚ady ich wykorzystania w sposób efektywny i kreatywny. Ta książka powinna siÄ™ znaleźć w podrÄ™cznej bibliotece każdego analityka danych!
Najważniejsze zagadnienia:
- Eksploracja danych za pomocą powłoki IPython i środowiska Jupyter
- Korzystanie z pakietów NumPy i Pandas
- Tworzenie wizualizacji danych za pomocÄ… pakietu Matplotlib
- Praca z danymi regularnych i nieregularnych szeregów czasowych
- RozwiÄ…zywanie rzeczywistych problemów analitycznych
Python: poznaj idealne narzędzie do analizy danych!
Wes McKinney jest Å›wietnie znany jako twórca pakietu Pandas - popularnej otwartej biblioteki Pythona przeznaczonej do analizy danych. Zajmuje siÄ™ jÄ™zykami Python i C++. Jest zwiÄ…zany ze Å›rodowiskiem analityków pracujÄ…cych w Pythonie i z Apache Software Foundation, z którÄ… rozwija wiele ciekawych projektów. Obecnie pracuje w Nowym Jorku jako architekt oprogramowania. McKinney czÄ™sto wystÄ™puje w roli prelegenta na różnych konferencjach. Uwielbia podróże, interesuje siÄ™ lingwistykÄ… i jÄ™zykami obcymi.
Osoby które kupowały "Python w analizie danych. Przetwarzanie danych za pomocą pakietów Pandas i NumPy oraz środowiska IPython. Wydanie II", wybierały także:
- Złam ten kod z Pythonem. Jak tworzyć, testować i łamać szyfry 86,77 zł, (26,90 zł -69%)
- Flask. Kurs video. Od pierwszej linijki kodu do praktycznego zastosowania 119,00 zł, (47,60 zł -60%)
- Python. Kurs video. Programowanie asynchroniczne 97,32 zł, (39,90 zł -59%)
- Python dla zaawansowanych. Kurs video. Podnie 149,00 zł, (67,05 zł -55%)
- Python dla administrator 179,00 zł, (80,55 zł -55%)
Spis treści
Python w analizie danych. Przetwarzanie danych za pomoc± pakietów Pandas i NumPy oraz ¶rodowiska IPython. Wydanie II eBook -- spis tre¶ci
Przedmowa (11)
1. Wstêp (15)
- 1.1. O czym jest ta ksi±¿ka? (15)
- Jakie rodzaje danych? (15)
- 1.2. Dlaczego warto korzystaæ z Pythona w celu przeprowadzenia analizy danych? (16)
- Python jako spoiwo (16)
- Rozwi±zywanie problemu "dwujêzyczno¶ci" (17)
- Dlaczego nie Python? (17)
- 1.3. Podstawowe biblioteki Pythona (17)
- NumPy (18)
- pandas (18)
- Matplotlib (19)
- IPython i Jupyter (19)
- SciPy (20)
- Scikit-learn (21)
- statsmodels (21)
- 1.4. Instalacja i konfiguracja (22)
- Windows (22)
- Apple (OS X, macOS) (23)
- GNU, Linux (23)
- Instalowanie i aktualizowanie pakietów Pythona (24)
- Python 2 i Python 3 (24)
- Zintegrowane ¶rodowiska programistyczne i edytory tekstowe (25)
- 1.5. Spo³eczno¶æ i konferencje (25)
- 1.6. Nawigacja po ksi±¿ce (26)
- Przyk³ady kodu (27)
- Przyk³adowe dane (27)
- Konwencje importowania (27)
- ¯argon (27)
2. Podstawy Pythona oraz obs³ugi narzêdzi IPython i Jupyter (29)
- 2.1. Interpreter Pythona (30)
- 2.2. Podstawy interpretera IPython (31)
- Uruchamianie pow³oki IPython (31)
- Uruchamianie notatnika Jupyter Notebook (32)
- Uzupe³nianie poleceñ (35)
- Introspekcja (36)
- Polecenie %run (37)
- Wykonywanie kodu ze schowka (39)
- Skróty klawiaturowe dzia³aj±ce w terminalu (39)
- Polecenia magiczne (40)
- Integracja pakietu matplotlib (42)
- 2.3. Podstawy Pythona (42)
- Semantyka jêzyka Python (43)
- Skalarne typy danych (50)
- Przep³yw sterowania (57)
3. Wbudowane struktury danych, funkcje i pliki (61)
- 3.1. Struktury danych i sekwencje (61)
- Krotka (61)
- Lista (64)
- Wbudowane funkcje obs³uguj±ce sekwencje (68)
- S³ownik (70)
- Zbiór (73)
- Lista, s³ownik i zbiór - sk³adanie (75)
- 3.2. Funkcje (77)
- Przestrzenie nazw, zakres i funkcje lokalne (78)
- Zwracanie wielu warto¶ci (79)
- Funkcje s± obiektami (79)
- Funkcje anonimowe (lambda) (81)
- Currying - czê¶ciowa aplikacja argumentów (82)
- Generatory (82)
- B³êdy i obs³uga wyj±tków (84)
- 3.3. Pliki i system operacyjny (86)
- Bajty i kodowanie Unicode w plikach (89)
- 3.4. Podsumowanie (91)
4. Podstawy biblioteki NumPy: obs³uga tablic i wektorów (93)
- 4.1. NumPy ndarray - wielowymiarowy obiekt tablicowy (95)
- Tworzenie tablic ndarray (96)
- Typ danych tablic ndarray (98)
- Dzia³ania matematyczne z tablicami NumPy (100)
- Podstawy indeksowania i przechwytywania czê¶ci (101)
- Indeksowanie i warto¶ci logiczne (105)
- Indeksowanie specjalne (108)
- Transponowanie tablic i zamiana osi (109)
- 4.2. Funkcje uniwersalne - szybkie funkcje wykonywane na poszczególnych elementach tablicy (110)
- 4.3. Programowanie z u¿yciem tablic (113)
- Logiczne operacje warunkowe jako operacje tablicowe (115)
- Metody matematyczne i statystyczne (116)
- Metody tablic logicznych (117)
- Sortowanie (118)
- Warto¶ci unikalne i operacje logiczne (119)
- 4.4. Tablice i operacje na plikach (120)
- 4.5. Algebra liniowa (120)
- 4.6. Generowanie liczb pseudolosowych (122)
- 4.7. Przyk³ad: b³±dzenie losowe (124)
- Jednoczesne symulowanie wielu b³±dzeñ losowych (125)
- 4.8. Podsumowanie (126)
5. Rozpoczynamy pracê z bibliotek± pandas (127)
- 5.1. Wprowadzenie do struktur danych biblioteki pandas (127)
- Obiekt Series (128)
- Obiekt DataFrame (131)
- Obiekty index (137)
- 5.2. Podstawowe funkcjonalno¶ci (139)
- Uaktualnianie indeksu (139)
- Odrzucanie elementów osi (141)
- Indeksowanie, wybieranie i filtrowanie (143)
- Indeksy w postaci liczb ca³kowitych (147)
- Dzia³ania arytmetyczne i wyrównywanie danych (148)
- Funkcje apply i map (153)
- Sortowanie i tworzenie rankingów (154)
- Indeksy osi ze zduplikowanymi etykietami (157)
- 5.3. Podsumowywanie i generowanie statystyk opisowych (158)
- Wspó³czynnik korelacji i kowariancja (161)
- Unikalne warto¶ci, ich liczba i przynale¿no¶æ (163)
- 5.4. Podsumowanie (165)
6. Odczyt i zapis danych, formaty plików (167)
- 6.1. Odczyt i zapis danych w formacie tekstowym (167)
- Wczytywanie czê¶ci pliku tekstowego (173)
- Zapis danych w formacie tekstowym (174)
- Praca z plikami danych rozgraniczonych (176)
- Dane w formacie JSON (178)
- XML i HTML - web scraping (179)
- 6.2. Formaty danych binarnych (182)
- Obs³uga formatu HDF5 (183)
- Wczytywanie plików programu Microsoft Excel (185)
- 6.3. Obs³uga interfejsów sieciowych (186)
- 6.4. Obs³uga baz danych (187)
- 6.5. Podsumowanie (188)
7. Czyszczenie i przygotowywanie danych (189)
- 7.1. Obs³uga brakuj±cych danych (189)
- Filtrowanie brakuj±cych danych (191)
- Wype³nianie brakuj±cych danych (193)
- 7.2. Przekszta³canie danych (195)
- Usuwanie duplikatów (195)
- Przekszta³canie danych przy u¿yciu funkcji lub mapowania (196)
- Zastêpowanie warto¶ci (197)
- Zmiana nazw indeksów osi (199)
- Dyskretyzacja i podzia³ na koszyki (200)
- Wykrywanie i filtrowanie elementów odstaj±cych (202)
- Permutacje i próbkowanie losowe (203)
- Przetwarzanie wska¼ników i zmiennych zastêpczych (204)
- 7.3. Operacje przeprowadzane na ³añcuchach (207)
- Metody obiektu typu string (207)
- Wyra¿enia regularne (209)
- Wektoryzacja funkcji ³añcuchów w pakiecie pandas (212)
- 7.4. Podsumowanie (215)
8. Przetwarzanie danych - operacje ³±czenia, wi±zania i przekszta³cania (217)
- 8.1. Indeksowanie hierarchiczne (217)
- Zmiana kolejno¶ci i sortowanie poziomów (220)
- Parametry statystyki opisowej z uwzglêdnieniem poziomu (220)
- Indeksowanie z kolumnami ramki danych (221)
- 8.2. £±czenie zbiorów danych (222)
- £±czenie ramek danych w stylu ³±czenia elementów baz danych (222)
- £±czenie przy u¿yciu indeksu (227)
- Konkatenacja wzd³u¿ osi (230)
- £±czenie czê¶ciowo nak³adaj±cych siê danych (234)
- 8.3. Zmiana kszta³tu i operacje osiowe (235)
- Przekszta³cenia z indeksowaniem hierarchicznym (236)
- Przekszta³canie z formatu "d³ugiego" na "szeroki" (238)
- Przekszta³canie z formatu "szerokiego" na "d³ugi" (241)
- 8.4. Podsumowanie (243)
9. Wykresy i wizualizacja danych (245)
- 9.1. Podstawy obs³ugi interfejsu pakietu matplotlib (245)
- Obiekty figure i wykresy sk³adowe (246)
- Kolory, oznaczenia i style linii (250)
- Punkty, etykiety i legendy (252)
- Adnotacje i rysunki (255)
- Zapisywanie wykresów w postaci plików (257)
- Konfiguracja pakietu matplotlib (258)
- 9.2. Generowanie wykresów za pomoc± pakietów pandas i seaborn (259)
- Wykresy liniowe (259)
- Wykresy s³upkowe (262)
- Histogramy i wykresy gêsto¶ci (266)
- Wykresy punktowe (268)
- Wykresy panelowe i dane kategoryczne (269)
- 9.3. Inne narzêdzia przeznaczone do wizualizacji danych w Pythonie (272)
- 9.4. Podsumowanie (272)
10. Agregacja danych i operacje wykonywane na grupach (273)
- 10.1. Mechanika interfejsu groupby (274)
- Iteracja po grupach (277)
- Wybieranie kolumny lub podzbioru kolumn (278)
- Grupowanie przy u¿yciu s³owników i serii (279)
- Grupowanie przy u¿yciu funkcji (280)
- Grupowanie przy u¿yciu poziomów indeksu (280)
- 10.2. Agregacja danych (281)
- Przetwarzanie kolumna po kolumnie i stosowanie wielu funkcji (282)
- Zwracanie zagregowanych danych bez indeksów wierszy (285)
- 10.3. Metoda apply - ogólne zastosowanie techniki dziel-zastosuj-po³±cz (286)
- Usuwanie kluczy grup (288)
- Kwantyle i analiza koszykowa (288)
- Przyk³ad: wype³nianie brakuj±cych warto¶ci przy u¿yciu warto¶ci charakterystycznych dla grupy (290)
- Przyk³ad: losowe generowanie próbek i permutacja (292)
- Przyk³ad: ¶rednie wa¿one grup i wspó³czynnik korelacji (293)
- Przyk³ad: regresja liniowa grup (295)
- 10.4. Tabele przestawne i krzy¿owe (295)
- Tabele krzy¿owe (298)
- 10.5. Podsumowanie (299)
11. Szeregi czasowe (301)
- 11.1. Typy danych i narzêdzia przeznaczone do obs³ugi daty i czasu (302)
- Konwersja pomiêdzy obiektami string i datetime (303)
- 11.2. Podstawy szeregów czasowych (305)
- Indeksowanie i wybieranie (306)
- Szeregi czasowe z duplikatami indeksów (309)
- 11.3. Zakresy dat, czêstotliwo¶ci i przesuniêcia (310)
- Generowanie zakresów dat (310)
- Czêstotliwo¶ci i przesuniêcia daty (313)
- Przesuwanie daty (314)
- 11.4. Obs³uga strefy czasowej (317)
- Lokalizacja i konwersja stref czasowych (317)
- Operacje z udzia³em obiektów Timestamp o wyznaczonej strefie czasowej (319)
- Operacje pomiêdzy ró¿nymi strefami czasowymi (320)
- 11.5. Okresy i przeprowadzanie na nich operacji matematycznych (321)
- Konwersja czêstotliwo¶ci ³añcuchów (322)
- Kwartalne czêstotliwo¶ci okresów (323)
- Konwersja znaczników czasu na okresy (i z powrotem) (325)
- Tworzenie obiektów PeriodIndex na podstawie tablic (326)
- 11.6. Zmiana rozdzielczo¶ci i konwersja czêstotliwo¶ci (328)
- Zmniejszanie czêstotliwo¶ci (329)
- Zwiêkszanie rozdzielczo¶ci i interpolacja (332)
- Zmiana rozdzielczo¶ci z okresami (333)
- 11.7. Funkcje ruchomego okna (334)
- Funkcje wa¿one wyk³adniczo (337)
- Binarne funkcje ruchomego okna (338)
- Funkcje ruchomego okna definiowane przez u¿ytkownika (340)
- 11.8. Podsumowanie (340)
12. Zaawansowane funkcje biblioteki pandas (341)
- 12.1. Dane kategoryczne (341)
- Kontekst i motywacja (341)
- Typ Categorical w bibliotece pandas (343)
- Obliczenia na obiektach typu Categorical (345)
- Metody obiektu kategorycznego (347)
- 12.2. Zaawansowane operacje grupowania (349)
- Transformacje grup i "nieobudowane" operacje grupowania (349)
- Zmiana rozdzielczo¶ci czasu przeprowadzana przy u¿yciu grup (353)
- 12.3. Techniki ³±czenia metod w ³añcuch (354)
- Metoda pipe (355)
- 12.4. Podsumowanie (356)
13. Wprowadzenie do bibliotek modeluj±cych (357)
- 13.1. £±czenie pandas z kodem modelu (357)
- 13.2. Tworzenie opisów modeli przy u¿yciu biblioteki Patsy (360)
- Przekszta³cenia danych za pomoc± formu³ Patsy (362)
- Patsy i dane kategoryczne (363)
- 13.3. Wprowadzenie do biblioteki statsmodels (366)
- Szacowanie modeli liniowych (366)
- Szacowanie procesów szeregów czasowych (369)
- 13.4. Wprowadzenie do pakietu scikit-learn (369)
- 13.5. Dalszy rozwój (373)
14. Przyk³ady analizy danych (375)
- 14.1. Dane USA.gov serwisu Bitly (375)
- Liczenie stref czasowych w czystym Pythonie (376)
- Liczenie stref czasowych przy u¿yciu pakietu pandas (378)
- 14.2. Zbiór danych MovieLens 1M (384)
- Wyznaczenie rozbie¿no¶ci ocen (388)
- 14.3. Imiona nadawane dzieciom w USA w latach 1880 - 2010 (389)
- Analiza trendów imion (394)
- 14.4. Baza danych USDA Food (402)
- 14.5. Baza danych 2012 Federal Election Commission (406)
- Statystyki datków z podzia³em na wykonywany zawód i pracodawcê (409)
- Podzia³ kwot datków na koszyki (411)
- Statystyki datków z podzia³em na poszczególne stany (413)
- 14.6. Podsumowanie (414)
A. Zaawansowane zagadnienia zwi±zane z bibliotek± NumPy (415)
- A.1. Szczegó³y budowy obiektu ndarray (415)
- Hierarchia typów danych NumPy (416)
- A.2. Zaawansowane operacje tablicowe (417)
- Zmiana wymiarów tablic (417)
- Kolejno¶ci charakterystyczne dla jêzyków C i Fortran (419)
- £±czenie i dzielenie tablic (420)
- Powtarzanie elementów - funkcje tile i repeat (422)
- Alternatywy indeksowania specjalnego - metody take i put (423)
- A.3. Rozg³aszanie (424)
- Rozg³aszanie wzd³u¿ innych osi (426)
- Przypisywanie warto¶ci elementom tablicy poprzez rozg³aszanie (428)
- A.4. Zaawansowane zastosowania funkcji uniwersalnych (429)
- Metody instancji funkcji uniwersalnych (429)
- Pisanie nowych funkcji uniwersalnych w Pythonie (431)
- A.5. Tablice o z³o¿onej strukturze (432)
- Zagnie¿d¿one typy danych i pola wielowymiarowe (433)
- Do czego przydaj± siê tablice o z³o¿onej strukturze? (434)
- A.6. Jeszcze co¶ o sortowaniu (434)
- Sortowanie po¶rednie - metody argsort i lexsort (435)
- Alternatywne algorytmy sortowania (436)
- Czê¶ciowe sortowanie tablic (437)
- Wyszukiwanie elementów w posortowanej tablicy za pomoc± metody numpy.searchsorted (438)
- A.7. Pisanie szybkich funkcji NumPy za pomoc± pakietu Numba (439)
- Tworzenie obiektów numpy.ufunc za pomoc± pakietu Numba (440)
- A.8. Zaawansowane tablicowe operacje wej¶cia i wyj¶cia (441)
- Pliki mapowane w pamiêci (441)
- HDF5 i inne mo¿liwo¶ci zapisu tablic (442)
- A.9. Jak zachowaæ wysok± wydajno¶æ? (442)
- Dlaczego warto korzystaæ z s±siaduj±cych ze sob± obszarów pamiêci? (443)
B. Dodatkowe informacje dotycz±ce systemu IPython (445)
- B.1. Korzystanie z historii poleceñ (445)
- Przeszukiwanie i korzystanie z historii poleceñ (445)
- Zmienne wej¶ciowe i wyj¶ciowe (446)
- B.2. Interakcja z systemem operacyjnym (447)
- Polecenia pow³oki systemowej i aliasy (447)
- System tworzenia skrótów do katalogów (448)
- B.3. Narzêdzia programistyczne (449)
- Interaktywny debuger (449)
- Pomiar czasu - funkcje %time i %timeit (453)
- Podstawowe profilowanie - funkcje %prun i %run-p (455)
- Profilowanie funkcji linia po linii (457)
- B.4. Wskazówki dotycz±ce produktywnego tworzenia kodu w ¶rodowisku IPython (458)
- Prze³adowywanie modu³ów (459)
- Wskazówki dotycz±ce projektowania kodu (460)
- B.5. Zaawansowane funkcje ¶rodowiska IPython (461)
- Co zrobiæ, aby w³asne klasy by³y przyjazne dla systemu IPython? (461)
- Profile i konfiguracja (462)
Skorowidz (465)