Oto dlaczego Pandas jest najpopularniejszą biblioteką analizy danych Pythona

Pandas to najpopularniejsza biblioteka do analizy danych dla Pythona. Jest szeroko stosowany przez analityków danych, naukowców zajmujących się danymi i inżynierów uczenia maszynowego.

Obok NumPy jest to jedna z bibliotek i narzędzi, które trzeba znać dla każdego, kto pracuje z danymi i sztuczną inteligencją.

W tym artykule przyjrzymy się Pandas i funkcjom, które sprawiają, że jest tak popularny w ekosystemie danych.

Co to są pandy?

Pandas to biblioteka do analizy danych dla Pythona. Oznacza to, że jest używany do pracy z danymi i manipulowania nimi z poziomu kodu Pythona. Dzięki Pandom możesz wydajnie odczytywać, przetwarzać, wizualizować, analizować i przechowywać dane.

Nazwa „Pandas” pochodzi od połączenia słów Panel Data, terminu ekonometrii, który odnosi się do danych uzyskanych z obserwacji wielu osób w czasie. Pandas została pierwotnie wydana w styczniu 2008 roku przez Wesa Kinneya i od tego czasu stała się najpopularniejszą biblioteką dla swojego przypadku użycia.

Sercem Pand są dwie podstawowe struktury danych, które powinieneś znać, Dataframes i Series. Kiedy tworzysz lub ładujesz zestaw danych w Pandas, jest on reprezentowany jako jedna z tych dwóch struktur danych.

W następnej sekcji przyjrzymy się, czym one są, czym się różnią i kiedy użycie jednego z nich jest idealne.

Kluczowe struktury danych

Jak wspomniano wcześniej, wszystkie dane w Pandach są reprezentowane przy użyciu jednej z dwóch struktur danych, ramki danych lub serii. Te dwie struktury danych zostały szczegółowo wyjaśnione poniżej.

Ramka danych

Ta przykładowa ramka danych została utworzona przy użyciu fragmentu kodu na dole tej sekcji

Dataframe w Pandas to dwuwymiarowa struktura danych z kolumnami i wierszami. Jest podobny do arkusza kalkulacyjnego w aplikacji arkusza kalkulacyjnego lub tabeli w relacyjnej bazie danych.

Składa się z kolumn, a każda kolumna reprezentuje atrybut lub funkcję w zbiorze danych. Kolumny te składają się następnie z poszczególnych wartości. Ta lista lub seria pojedynczych wartości jest reprezentowana jako obiekty serii. Bardziej szczegółowo omówimy strukturę danych serii w dalszej części tego artykułu.

Kolumny w ramce danych mogą mieć opisowe nazwy, dzięki czemu można je od siebie odróżnić. Nazwy te są przypisywane podczas tworzenia lub ładowania ramki danych, ale można je łatwo zmienić w dowolnym momencie.

Wartości w kolumnie muszą być tego samego typu danych, chociaż kolumny nie muszą zawierać danych tego samego typu. Oznacza to, że kolumna nazwy w zbiorze danych będzie przechowywać wyłącznie ciągi znaków. Ale ten sam zestaw danych może mieć inne kolumny, takie jak wiek, w których przechowywane są liczby int.

Ramki danych mają również indeks używany do odwoływania się do wierszy. Wartości w różnych kolumnach, ale z tym samym indeksem, tworzą wiersz. Domyślnie indeksy są numerowane, ale można je ponownie przypisać, aby pasowały do ​​zestawu danych. W przykładzie (pokazanym powyżej, zakodowanym poniżej) ustawiliśmy kolumnę indeksu na kolumnę „miesiące”.

import pandas as pd

sales_df = pd.DataFrame({
    'Month': ['January', 'February', 'March'],
    'Jane Doe': [5000, 6000, 5500],
    'John Doe': [4500, 6700, 6000]
})

sales_df.set_index(['Month'], inplace=True)

print(sales_df)

Seria

Ta przykładowa seria została wyprodukowana przy użyciu kodu podanego na dole tej sekcji

Jak omówiono wcześniej, Seria jest używana do reprezentowania kolumny danych w Pandach. Seria jest zatem jednowymiarową strukturą danych. Kontrastuje to z ramką danych, która jest dwuwymiarowa.

Chociaż seria jest powszechnie używana jako kolumna w ramce danych, może również samodzielnie reprezentować kompletny zestaw danych, pod warunkiem, że zestaw danych ma tylko jeden atrybut zarejestrowany w jednej kolumnie. A raczej zbiór danych jest po prostu listą wartości.

Ponieważ seria to po prostu jedna kolumna, nie musi mieć nazwy. Jednak wartości w Serii są indeksowane. Podobnie jak indeks ramki danych, ramka danych serii może być modyfikowana z domyślnej numeracji.

W przykładzie (pokazanym powyżej, zakodowanym poniżej) indeks został ustawiony na różne miesiące przy użyciu metody set_axis obiektu Pandas Series.

import pandas as pd

total_sales = pd.Series([9500, 12700, 11500])
months = ['January', 'February', 'March']

total_sales = total_sales.set_axis(months)

print(total_sales)

Cechy pand

Teraz, gdy masz dobre pojęcie o tym, czym jest Pandas i jakie kluczowe struktury danych wykorzystuje, możemy zacząć omawiać funkcje, które sprawiają, że Pandas jest tak potężną biblioteką do analizy danych, a w rezultacie niezwykle popularną w Data Science i Machine Learning Ekosystemy.

# 1. Manipulacja danymi

Obiekty Dataframe i Series są modyfikowalne. W razie potrzeby możesz dodawać lub usuwać kolumny. Ponadto Pandas umożliwia dodawanie wierszy, a nawet scalanie zestawów danych.

Możesz wykonywać obliczenia numeryczne, takie jak normalizowanie danych i dokonywanie logicznych porównań według elementów. Pandy umożliwiają także grupowanie danych i stosowanie funkcji agregujących, takich jak średnia, średnia, maksimum i min. To sprawia, że ​​praca z danymi w Pandas jest dziecinnie prosta.

#2. Czyszczenie danych

Dane uzyskane z rzeczywistego świata często mają wartości, które utrudniają pracę lub nie są idealne do analizy lub wykorzystania w modelach uczenia maszynowego. Dane mogą być nieprawidłowego typu, w niewłaściwym formacie lub po prostu ich nie ma. Tak czy inaczej, dane te wymagają wstępnego przetworzenia, zwanego czyszczeniem, zanim będzie można ich użyć.

Pandas ma funkcje, które pomogą Ci wyczyścić dane. Na przykład w Pandach możesz usuwać zduplikowane wiersze, usuwać kolumny lub wiersze z brakującymi danymi i zastępować wartości wartościami domyślnymi lub innymi wartościami, takimi jak średnia z kolumny. Istnieje więcej funkcji i bibliotek współpracujących z Pandami, które umożliwiają czyszczenie danych w większym stopniu.

#3. Wizualizacja danych

Ten wykres został wygenerowany za pomocą kodu znajdującego się poniżej tej sekcji

Chociaż nie jest to biblioteka wizualizacji, taka jak Matplotlib, Pandas ma funkcje do tworzenia podstawowych wizualizacji danych. I chociaż są podstawowe, w większości przypadków nadal wykonują swoją pracę.

Dzięki Pandom możesz łatwo kreślić wykresy słupkowe, histogramy, macierze punktowe i inne rodzaje wykresów. Połącz to z niektórymi manipulacjami danymi, które możesz wykonać w Pythonie, i możesz tworzyć jeszcze bardziej skomplikowane wizualizacje, aby lepiej zrozumieć swoje dane.

import pandas as pd

sales_df = pd.DataFrame({
    'Month': ['January', 'February', 'March'],
    'Jane Doe': [5000, 6000, 5500],
    'John Doe': [4500, 6700, 6000]
})

sales_df.set_index(['Month'], inplace=True)

sales_df.plot.line()

#4. Analiza szeregów czasowych

Pandas obsługuje również pracę z danymi ze znacznikami czasu. Gdy Pandas rozpoznaje kolumnę zawierającą wartości typu data/godzina, można wykonać na tej samej kolumnie wiele operacji, które są przydatne podczas pracy z danymi szeregów czasowych.

Obejmują one grupowanie obserwacji według okresu i stosowanie do nich funkcji agregujących, takich jak suma lub średnia, lub uzyskiwanie najwcześniejszych lub najnowszych obserwacji przy użyciu min. i maks. Jest oczywiście o wiele więcej rzeczy, które możesz zrobić z danymi szeregów czasowych w Pandach.

#5. Wejście/wyjście w Pandach

Pandas jest w stanie odczytywać dane z najpopularniejszych formatów przechowywania danych. Należą do nich JSON, zrzuty SQL i pliki CSV. Możesz także zapisywać dane w plikach w wielu z tych formatów.

Ta zdolność do odczytu i zapisu do różnych formatów plików danych pozwala Pandas bezproblemowo współpracować z innymi aplikacjami i budować potoki danych, które dobrze integrują się z Pandas. Jest to jeden z powodów, dla których Pandas jest powszechnie używany przez wielu programistów.

#6. Integracja z innymi bibliotekami

Pandas ma również bogaty ekosystem narzędzi i bibliotek zbudowanych na nim w celu uzupełnienia jego funkcjonalności. Dzięki temu jest jeszcze potężniejszą i bardziej użyteczną biblioteką.

Narzędzia w ekosystemie Pandas zwiększają jego funkcjonalność w różnych obszarach, w tym w czyszczeniu danych, wizualizacji, uczeniu maszynowym, wejściu/wyjściu i równoległości. Pandas prowadzi rejestr takich narzędzi w swojej dokumentacji.

Zagadnienia dotyczące wydajności i wydajności w Pandach

Podczas gdy Pandas błyszczy w większości operacji, może być notorycznie powolny. Jasną stroną jest to, że możesz zoptymalizować swój kod i poprawić jego szybkość. Aby to zrobić, musisz zrozumieć, jak zbudowana jest Pandas.

Pandas jest zbudowany na bazie NumPy, popularnej biblioteki Pythona do obliczeń numerycznych i naukowych. Dlatego, podobnie jak NumPy, Pandas działa wydajniej, gdy operacje są wektoryzowane, w przeciwieństwie do wybierania pojedynczych komórek lub wierszy za pomocą pętli.

Wektoryzacja jest formą równoległości, w której ta sama operacja jest stosowana do wielu punktów danych jednocześnie. Nazywa się to SIMD — pojedyncza instrukcja, wiele danych. Wykorzystanie operacji wektorowych radykalnie poprawi szybkość i wydajność Pand.

Ponieważ pod maską używają tablic NumPy, struktury danych DataFrame i Series są szybsze niż ich alternatywne słowniki i listy.

Domyślna implementacja Pandy działa tylko na jednym rdzeniu procesora. Innym sposobem na przyspieszenie kodu jest użycie bibliotek, które umożliwiają Pandom wykorzystanie wszystkich dostępnych rdzeni procesora. Należą do nich Dask, Vaex, Modin i IPython.

Społeczność i zasoby

Będąc popularną biblioteką najpopularniejszego języka programowania, Pandas ma dużą społeczność użytkowników i współpracowników. W rezultacie istnieje wiele zasobów, których można użyć, aby dowiedzieć się, jak z niego korzystać. Należą do nich oficjalna dokumentacja Pandy. Ale są też niezliczone kursy, samouczki i książki, z których można się uczyć.

Istnieją również społeczności internetowe na platformach takich jak Reddit w subredditach r/Python i r/Data Science, w których można zadawać pytania i uzyskiwać odpowiedzi. Będąc biblioteką typu open source, możesz zgłaszać problemy w GitHub, a nawet współtworzyć kod.

Ostatnie słowa

Pandas jest niezwykle użyteczna i potężna jako biblioteka nauki o danych. W tym artykule próbowałem wyjaśnić jego popularność, badając funkcje, które sprawiają, że jest to podstawowe narzędzie dla analityków danych i programistów.

Następnie sprawdź, jak utworzyć Pandas DataFrame.