Przed użyciem tabeli przestawnej pandy upewnij się, że rozumiesz swoje dane i pytania, które próbujesz rozwiązać za pomocą tabeli przestawnej. Korzystając z tej metody, możesz osiągnąć wspaniałe rezultaty. W tym artykule omówimy, jak stworzyć tabelę przestawną w pandas python.
Odczytaj dane z pliku Excel
Pobraliśmy bazę danych Excela sprzedaży żywności. Przed rozpoczęciem wdrożenia należy zainstalować kilka niezbędnych pakietów do odczytu i zapisu plików bazy danych Excel. Wpisz następujące polecenie w sekcji terminala edytora Pycharm:
pip zainstaluj 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 poniższy kod, dane można pobrać z pliku.
importuj pandy jako PDimportuj numer jako np
dtfrm = pd.read_excel('C:/Użytkownicy/DELL/Pulpit/dane sprzedaży żywności.xlsx')
drukuj(dtfrm)
Tutaj dane są odczytywane z bazy danych programu Excel sprzedaży żywności i przekazywane do zmiennej dataframe.
Utwórz tabelę przestawną za pomocą Pandas Python
Poniżej stworzyliśmy prostą tabelę przestawną, korzystając z bazy danych sprzedaży żywności. Do utworzenia tabeli przestawnej wymagane są dwa parametry. Pierwsza z nich to dane, które przekazaliśmy do dataframe, a druga to indeks.
Przestaw dane na indeksie
Indeks to funkcja tabeli przestawnej, która umożliwia grupowanie danych na podstawie wymagań. Tutaj przyjęliśmy „Produkt” jako indeks, aby utworzyć podstawową tabelę przestawną.
importuj pandy jako PDimportuj numer jako np
ramka danych = pd.read_excel('C:/Użytkownicy/DELL/Pulpit/dane sprzedaży żywności.xlsx')
tabela_przestawna=pd.pivot_table(dataframe,index=["Produkt"])
drukuj(tabela_przestawna)
Poniższy wynik pokazuje po uruchomieniu powyższego kodu źródłowego:
Jawnie zdefiniuj kolumny
Aby uzyskać więcej analiz danych, wyraźnie zdefiniuj nazwy kolumn z indeksem. Na przykład chcemy wyświetlić jedyną cenę jednostkową każdego produktu w wyniku. W tym celu dodaj parametr wartości w tabeli przestawnej. Poniższy kod daje ten sam wynik:
importuj pandy jako PDimportuj numer jako np
ramka danych = pd.read_excel('C:/Użytkownicy/DELL/Pulpit/dane sprzedaży żywności.xlsx')
tabela_przestawna=pd.tabela_przestawna(ramka danych, index='Produkt', values='CenaJednostkowa')
drukuj(tabela_przestawna)
Dane przestawne z wieloma indeksami
Dane mogą być grupowane na podstawie więcej niż jednej cechy jako indeks. Korzystając z podejścia wieloindeksowego, możesz uzyskać bardziej szczegółowe wyniki analizy danych. Na przykład produkty należą do różnych kategorii. Możesz więc wyświetlić indeks „Produkt” i „Kategoria” z dostępnymi „Ilość” i „Cena jednostkowa” każdego produktu w następujący sposób:
importuj pandy jako PDimportuj numer jako np
ramka danych = pd.read_excel('C:/Użytkownicy/DELL/Pulpit/dane sprzedaży żywności.xlsx')
tabela_przestawna=pd.pivot_table(dataframe,index=["Kategoria","Produkt"],values=["CenaJednostkowa", "Ilość"])
drukuj(tabela_przestawna)
Stosowanie funkcji agregacji w tabeli przestawnej
W tabeli przestawnej aggfunc można zastosować do różnych wartości cech. Wynikowa tabela jest podsumowaniem danych cech. Funkcja agregująca dotyczy danych grupy w tabeli przestawnej. Domyślna funkcja agregująca to np.oznaczać(). Jednak w zależności od wymagań użytkownika różne funkcje agregujące mogą mieć zastosowanie do różnych funkcji danych.
Przykład:
W tym przykładzie zastosowaliśmy funkcje agregujące. Np.Funkcja sum() jest używana dla funkcji „Ilość” i np.funkcja mean() dla funkcji „Cena jednostkowa”.
importuj pandy jako PDimportuj numer jako np
ramka danych = pd.read_excel('C:/Użytkownicy/DELL/Pulpit/dane sprzedaży żywności.xlsx')
tabela_przestawna=pd.pivot_table(dataframe,index=["Kategoria","Produkt"], aggfunc='Ilość': np.suma,'CenaJednostkowa': np.oznaczać)
drukuj(tabela_przestawna)
Po zastosowaniu funkcji agregacji dla różnych funkcji otrzymasz następujące dane wyjściowe:
Korzystając z parametru value, możesz również zastosować funkcję agregującą dla określonej funkcji. Jeśli nie określisz wartości cechy, agreguje ona cechy liczbowe Twojej bazy danych. Postępując zgodnie z podanym kodem źródłowym, możesz zastosować funkcję agregującą dla określonej funkcji:
importuj pandy jako PDimportuj numer jako np
ramka danych = pd.read_excel('C:/Użytkownicy/DELL/Pulpit/dane sprzedaży żywności.xlsx')
tabela_przestawna=pd.tabela_przestawna(ramka danych, index=['Produkt'], values=['CenaJednostkowa'], aggfunc=np.oznaczać)
drukuj(tabela_przestawna)
Różnice między wartościami a. Kolumny w tabeli przestawnej
Wartości i kolumny są głównym mylącym punktem w tabeli_przestawnej. Należy pamiętać, że kolumny są polami opcjonalnymi, wyświetlającymi wartości wynikowej tabeli w poziomie u góry. Funkcja agregacji aggfunc dotyczy pola wartości, które wypisujesz.
importuj pandy jako PDimportuj numer jako np
ramka danych = pd.read_excel('C:/Użytkownicy/DELL/Pulpit/dane sprzedaży żywności.xlsx')
tabela_przestawna=pd.pivot_table(dataframe,index=['Kategoria','Produkt', 'Miasto'],values=['CenaJednostkowa', 'Ilość'],
kolumny=['Region'],aggfunc=[np.suma])
drukuj(tabela_przestawna)
Obsługa brakujących danych w tabeli przestawnej
Możesz również obsłużyć brakujące wartości w tabeli przestawnej, używając „wartość_wypełnienia” Parametr. Pozwala to na zastąpienie wartości NaN jakąś nową wartością, którą podajesz do wypełnienia.
Na przykład usunęliśmy wszystkie wartości null z powyższej tabeli wynikowej, uruchamiając następujący kod i zamieniając wartości NaN na 0 w całej tabeli wynikowej.
importuj pandy jako PDimportuj numer jako np
ramka danych = pd.read_excel('C:/Użytkownicy/DELL/Pulpit/dane sprzedaży żywności.xlsx')
tabela_przestawna=pd.pivot_table(dataframe,index=['Kategoria','Produkt', 'Miasto'],values=['CenaJednostkowa', 'Ilość'],
kolumny=['Region'],aggfunc=[np.suma], wartość_wypełnienia=0)
drukuj(tabela_przestawna)
Filtrowanie w tabeli przestawnej
Po wygenerowaniu wyniku możesz zastosować filtr, korzystając ze standardowej funkcji dataframe. Weźmy przykład. Filtruj te produkty, których cena jednostkowa jest mniejsza niż 60. Wyświetla te produkty, których cena jest mniejsza niż 60.
importuj pandy jako PDimportuj numer jako np
ramka danych = pd.read_excel('C:/Użytkownicy/DELL/Pulpit/dane sprzedaży żywności.xlsx', index_col=0)
tabela_przestawna=pd.tabela_przestawna(ramka danych, index='Produkt', values='CenaJednostkowa', aggfunc='suma')
low_price=pivot_tble[pivot_tble['CenaJednostkowa'] < 60]
drukuj(niska_cena)
Korzystając z innej metody zapytania, możesz filtrować wyniki. Na przykład, na przykład przefiltrowaliśmy kategorię plików cookie na podstawie następujących funkcji:
importuj pandy jako PDimportuj numer jako np
ramka danych = pd.read_excel('C:/Użytkownicy/DELL/Pulpit/dane sprzedaży żywności.xlsx', index_col=0)
tabela_przestawna=pd.pivot_table(dataframe,index=["Kategoria","Miasto","Region"],values=["CenaJednostkowa", "Ilość"],aggfunc=np.suma)
pt=tabela_przestawna.query('Kategoria == ["Pliki cookie"]')
drukuj(pt)
Wynik:
Wizualizuj dane tabeli przestawnej
Aby zwizualizować dane tabeli przestawnej, wykonaj następującą metodę:
importuj pandy jako PDimportuj numer jako np
importuj bibliotekę matplotlib.pyplot jako plt
ramka danych = pd.read_excel('C:/Użytkownicy/DELL/Pulpit/dane sprzedaży żywności.xlsx', index_col=0)
tabela_przestawna=pd.pivot_table(dataframe,index=["Kategoria","Produkt"],values=["CenaJednostkowa"])
tabela_przestawna.działka(rodzaj='bar');
plt.pokazać()
Na powyższej wizualizacji pokazaliśmy ceny jednostkowe różnych produktów wraz z kategoriami.
Wniosek
Zbadaliśmy, w jaki sposób można wygenerować tabelę przestawną z ramki danych za pomocą Pythona Pandas. Tabela przestawna umożliwia generowanie głębokich wglądów w zbiory danych. Widzieliśmy, jak wygenerować prostą tabelę przestawną za pomocą wielu indeksów i zastosować filtry w tabelach przestawnych. Co więcej, pokazaliśmy również, jak rysować dane tabeli przestawnej i uzupełniać brakujące dane.