Jak utworzyć stół obrotowy w Pandas Python

Jak utworzyć stół obrotowy w Pandas Python
W Pythonie Panda tabela obrotu zawiera sumy, liczby lub funkcje agregacji pochodzące z tabeli danych. Funkcje agregacji mogą być używane na różnych cechach lub wartościach. Tabela obrotu pozwala nam podsumować dane tabeli jako zgrupowane według różnych wartości, w tym wartości kategorycznych kolumny.

Przed użyciem tabeli obrotowej Pandy, upewnij się, że rozumiesz swoje dane i pytania, które próbujesz rozwiązać za pośrednictwem tabeli Pivot. Korzystając z tej metody, możesz uzyskać potężne wyniki. Będziemy rozwinąć w tym artykule, jak utworzyć tabelę obrotową w Pandas Python.

Odczytaj dane z pliku Excel

Pobraliśmy bazę danych Excel o sprzedaży żywności. Przed rozpoczęciem implementacji musisz zainstalować kilka niezbędnych pakietów do odczytu i zapisywania plików bazy danych Excel. Wpisz następujące polecenie w sekcji terminalnej redaktora Pycharm:

PIP Instaluj XLWT OpenPyxl XLSXWriter XLRD

Teraz odczytaj dane z arkusza Excel. Zaimportuj wymagane biblioteki pandy i zmień ścieżkę swojej bazy danych. Następnie, uruchamiając następujący kod, dane można pobrać z pliku.

importować pandy jako PD
importować Numpy jako NP
dtfrm = pd.Read_excel ('c:/Users/dell/Desktop/Foodsalesdata.xlsx ')
Drukuj (DTFRM)

Tutaj dane są odczytywane z bazy danych Excel sprzedaży żywności i przekazywane do zmiennej DataFrame.

Utwórz tabelę obrotową za pomocą Pythona Pandas

Below we have created a simple pivot table by using the food sales database. Do utworzenia tabeli obrotowej wymagane są dwa parametry. Pierwszym z nich to dane, które przekazaliśmy w ramce danych, a drugi to indeks.

Pivot dane dotyczące indeksu

Indeks jest cechą tabeli obrotowej, która pozwala grupować swoje dane na podstawie wymagań. Tutaj wzięliśmy „produkt” jako indeks, aby utworzyć podstawową tabelę obrotu.

importować pandy jako PD
importować Numpy jako NP
DataFrame = PD.Read_excel ('c:/Users/dell/Desktop/Foodsalesdata.xlsx ')
PIVOT_TBLE = PD.PIVOT_TABLE (DataFrame, index = [„produkt”])
Drukuj (Pivot_tble)

Poniższy wynik pokazuje po uruchomieniu powyższego kodu źródłowego:

Wyraźnie zdefiniuj kolumny

Aby uzyskać więcej analizy danych, wyraźnie zdefiniuj nazwy kolumn za pomocą indeksu. Na przykład chcemy wyświetlić jedyną wartość jednostkową każdego produktu w wyniku. W tym celu dodaj parametr wartości w tabeli obrotowej. Poniższy kod daje ten sam wynik:

importować pandy jako PD
importować Numpy jako NP
DataFrame = PD.Read_excel ('c:/Users/dell/Desktop/Foodsalesdata.xlsx ')
PIVOT_TBLE = PD.PIVOT_TABLE (DataFrame, index = „produkt”, wartości = „unitprice”)
Drukuj (Pivot_tble)

PIVOT DATA Z MUTINDEX

Dane można pogrupować na podstawie więcej niż jednej funkcji jako indeks. Korzystając z podejścia wielokrotnego indeksu, możesz uzyskać bardziej szczegółowe wyniki do analizy danych. Na przykład produkty znajdują się w różnych kategoriach. Możesz więc wyświetlić indeks „produktu” i „kategorii” z dostępną „ilością” i „jednostką” każdego produktu w następujący sposób:

importować pandy jako PD
importować Numpy jako NP
DataFrame = PD.Read_excel ('c:/Users/dell/Desktop/Foodsalesdata.xlsx ')
PIVOT_TBLE = PD.PIVOT_TABLE (DataFrame, index = [„kategoria”, „produkt”], wartości = [„UnitPrice”, „ilość”]))
Drukuj (Pivot_tble)

Stosowanie funkcji agregacji w tabeli obrotowej

W tabeli obrotowej AGGFUNC można zastosować dla różnych wartości cech. Wynikowa tabela to podsumowanie danych cech. Funkcja zagregowana dotyczy danych grupy w Pivot_Table. Domyślnie funkcja agregująca to NP.mieć na myśli(). Ale w oparciu o wymagania użytkownika, różne funkcje zagregowane mogą obowiązywać różne funkcje danych.

Przykład:

W tym przykładzie zastosowaliśmy funkcje agregowane. NP.Funkcja sum () służy do funkcji „ilościowej” i NP.Mean () funkcja dla funkcji „UnitPrice”.

importować pandy jako PD
importować Numpy jako NP
DataFrame = PD.Read_excel ('c:/Users/dell/Desktop/Foodsalesdata.xlsx ')
PIVOT_TBLE = PD.PIVOT_TABLE (DataFrame, index = [„kategoria”, „produkt”], aggfunc = „ilość”: np.Sum, „UnitPrice”: NP.mieć na myśli)
Drukuj (Pivot_tble)

Po zastosowaniu funkcji agregacji dla różnych funkcji otrzymasz następujące dane wyjściowe:

Korzystając z parametru wartości, możesz również zastosować funkcję agregatów dla określonej funkcji. Jeśli nie określisz wartości funkcji, agreguje funkcje numeryczne Twojej bazy danych. Postępując zgodnie z danym kodem źródłowym, możesz zastosować funkcję agregatów dla określonej funkcji:

importować pandy jako PD
importować Numpy jako NP
DataFrame = PD.Read_excel ('c:/Users/dell/Desktop/Foodsalesdata.xlsx ')
PIVOT_TBLE = PD.PIVOT_TABLE (DataFrame, index = ['produkt'], wartości = ['UnitPrice'], aggfunc = np.mieć na myśli)
Drukuj (Pivot_tble)

Różne między wartościami vs. Kolumny w tabeli obrotowej

Wartości i kolumny są głównym mylącym punktem w Pivot_Table. Należy zauważyć, że kolumny są opcjonalnymi pola, wyświetlając wartości wynikowej tabeli poziomo na górze. Funkcja agregacji AGGFUNC dotyczy pola, które wymieniasz.

importować pandy jako PD
importować Numpy jako NP
DataFrame = PD.Read_excel ('c:/Users/dell/Desktop/Foodsalesdata.xlsx ')
PIVOT_TBLE = PD.PIVOT_TABLE (DataFrame, index = ['kategoria', „produkt”, „miasto”], wartości = [„UnitPrice”, „ilość”],
kolumny = ['region'], aggfunc = [np.suma])
Drukuj (Pivot_tble)

Obsługa brakujących danych w tabeli obrotowej

Możesz także obsłużyć brakujące wartości w tabeli obrotowej za pomocą „Fill_value” Parametr. To pozwala zastąpić wartości NAN na nową wartość, którą dostarczasz do wypełnienia.

Na przykład usunęliśmy wszystkie wartości zerowe z powyższej tabeli, uruchamiając następujący kod i zastępuje wartości NAN 0 w całej wynikowej tabeli.

importować pandy jako PD
importować Numpy jako NP
DataFrame = PD.Read_excel ('c:/Users/dell/Desktop/Foodsalesdata.xlsx ')
PIVOT_TBLE = PD.PIVOT_TABLE (DataFrame, index = ['kategoria', „produkt”, „miasto”], wartości = [„UnitPrice”, „ilość”],
kolumny = ['region'], aggfunc = [np.suma], Fill_Value = 0)
Drukuj (Pivot_tble)

Filtrowanie w tabeli obrotowej

Po wygenerowaniu wyniku możesz zastosować filtr za pomocą standardowej funkcji DataFrame. Weźmy przykład. Odfiltruj te produkty, których cena jednostkowa jest mniejsza niż 60. Wyświetla te produkty, których cena jest mniejsza niż 60.

importować pandy jako PD
importować Numpy jako NP
DataFrame = PD.Read_excel ('c:/Users/dell/Desktop/Foodsalesdata.xlsx ', index_col = 0)
PIVOT_TBLE = PD.PIVOT_TABLE (DataFrame, index = „produkt”, wartości = „UnitPrice”, aggfunc = „sum”)
Low_Price = Pivot_tble [Pivot_tble ['UnitPrice'] < 60]
Drukuj (Low_Price)

Korzystając z innej metody zapytania, możesz filtrować wyniki. Na przykład, na przykład, odfiltrowaliśmy kategorię plików cookie na podstawie następujących funkcji:

importować pandy jako PD
importować Numpy jako NP
DataFrame = PD.Read_excel ('c:/Users/dell/Desktop/Foodsalesdata.xlsx ', index_col = 0)
PIVOT_TBLE = PD.PIVOT_TABLE (DataFrame, index = [„kategoria”, „miasto”, „region”], wartości = [„UnitPrice”, „ilość”], aggfunc = np.suma)
Pt = Pivot_tble.zapytanie („kategoria == [„ pliki cookie ”] ')
Drukuj (PT)

Wyjście:

Wizualizuj dane tabeli obrotowej

Aby wizualizować dane tabeli przestawnej, postępuj zgodnie z następującą metodą:

importować pandy jako PD
importować Numpy jako NP
importować matplotlib.Pyplot as Plt
DataFrame = PD.Read_excel ('c:/Users/dell/Desktop/Foodsalesdata.xlsx ', index_col = 0)
PIVOT_TBLE = PD.PIVOT_TABLE (DataFrame, index = [„kategoria”, „produkt”], wartości = [„UnitPrice”])
Pivot_tble.wykres (kind = „bar”);
plt.pokazywać()

W powyższej wizualizacji pokazaliśmy cenę jednostkową różnych produktów wraz z kategoriami.

Wniosek

Badaliśmy, w jaki sposób możesz wygenerować tabelę obrotu z ramki danych za pomocą pandas Python. Tabela obrotu pozwala generować głębokie wgląd w zestawy danych. Widzieliśmy, jak wygenerować prostą tabelę obrotową za pomocą wielu indeksu i zastosować filtry na tabele obrotu. Ponadto pokazaliśmy również wykreślanie danych tabeli obrotowej i wypełniania brakujących danych.