Data Science

Jak vytvořit kontingenční tabulku v Pandas Python

Jak vytvořit kontingenční tabulku v Pandas Python
V pythonu pandy obsahuje kontingenční tabulka funkce součty, počty nebo agregace odvozené z datové tabulky. Agregační funkce lze použít na různé funkce nebo hodnoty. Kontingenční tabulka nám umožňuje shrnout data tabulky seskupená podle různých hodnot, včetně hodnot kategorií podle sloupců.

Před použitím kontingenční tabulky panda se ujistěte, že rozumíte svým datům a otázkám, které se snažíte vyřešit prostřednictvím kontingenční tabulky. Pomocí této metody můžete dosáhnout skvělých výsledků. V tomto článku rozvedeme, jak vytvořit kontingenční tabulku v Pandas Pythonu.

Čtení dat ze souboru aplikace Excel

Stáhli jsme si excelovou databázi prodeje potravin. Před zahájením implementace je třeba nainstalovat několik nezbytných balíčků pro čtení a zápis souborů databáze aplikace Excel. Zadejte následující příkaz do terminální části editoru pycharm:

pip install xlwt openpyxl xlsxwriter xlrd

Nyní si přečtěte data z listu aplikace Excel. Importujte požadované knihovny pandy a změňte cestu k vaší databázi. Potom spuštěním následujícího kódu lze data načíst ze souboru.

importovat pandy jako pd
importovat numpy jako np
dtfrm = pd.read_excel ('C: / Users / DELL / Desktop / foodsalesdata.xlsx ')
tisk (dtfrm)

Zde se data čtou z databáze Excel Excel pro prodej potravin a předávají se do proměnné datového rámce.

Vytvořte kontingenční tabulku pomocí Pandas Python

Níže jsme vytvořili jednoduchou kontingenční tabulku pomocí databáze prodeje potravin. K vytvoření kontingenční tabulky jsou vyžadovány dva parametry. Prvním z nich jsou data, která jsme předali do datového rámce, a druhým je index.

Pivotní data v indexu

Index je funkce kontingenční tabulky, která umožňuje seskupit data podle požadavků. Zde jsme vzali 'Produkt' jako index k vytvoření základní kontingenční tabulky.

importovat pandy jako pd
importovat numpy jako np
dataframe = pd.read_excel ('C: / Users / DELL / Desktop / foodsalesdata.xlsx ')
pivot_tble = pd.pivot_table (dataframe, index = ["Produkt"])
tisk (kontingenční_tabulka)

Následující výsledek se zobrazí po spuštění výše uvedeného zdrojového kódu:

Výslovně definujte sloupce

Pro další analýzu dat explicitně definujte názvy sloupců s indexem. Například chceme ve výsledku zobrazit jedinou UnitPrice každého produktu. Za tímto účelem přidejte parametr hodnot do kontingenční tabulky. Následující kód vám dává stejný výsledek:

importovat pandy jako pd
importovat numpy jako np
dataframe = pd.read_excel ('C: / Users / DELL / Desktop / foodsalesdata.xlsx ')
pivot_tble = pd.pivot_table (dataframe, index = 'Product', values ​​= 'UnitPrice')
tisk (kontingenční_tabulka)

Otočte data pomocí více indexů

Data lze seskupit na základě více než jedné funkce jako index. Pomocí přístupu založeného na více indexech můžete získat konkrétnější výsledky pro analýzu dat. Například výrobky spadají do různých kategorií. Můžete tedy zobrazit index „Produkt“ a „Kategorie“ s dostupnými „Množstvím“ a „Jednotkovou cenou“ každého produktu následujícím způsobem:

importovat pandy jako pd
importovat numpy jako np
dataframe = pd.read_excel ('C: / Users / DELL / Desktop / foodsalesdata.xlsx ')
pivot_tble = pd.pivot_table (dataframe, index = ["kategorie", "produkt"], hodnoty = ["jednotková cena", "množství"])
tisk (kontingenční_tabulka)

Použití agregační funkce v kontingenční tabulce

V kontingenční tabulce lze aggfunc použít pro různé hodnoty prvků. Výsledná tabulka je souhrn dat funkcí. Funkce agregace se vztahuje na data vaší skupiny v kontingenční tabulce. Ve výchozím nastavení je agregační funkce np.znamenat(). Ale na základě požadavků uživatele lze pro různé datové funkce použít různé agregační funkce.

Příklad:

V tomto příkladu jsme použili agregační funkce. Np.funkce sum () se používá pro funkci 'Množství' a np.funkce mean () pro funkci 'UnitPrice'.

importovat pandy jako pd
importovat numpy jako np
dataframe = pd.read_excel ('C: / Users / DELL / Desktop / foodsalesdata.xlsx ')
pivot_tble = pd.pivot_table (dataframe, index = ["kategorie", "produkt"], aggfunc = 'množství': np.součet, 'UnitPrice': np.znamenat)
tisk (kontingenční_tabulka)

Po použití agregační funkce pro různé funkce získáte následující výstup:

Pomocí parametru hodnoty můžete také použít agregační funkci pro konkrétní funkci. Pokud nezadáte hodnotu funkce, agreguje číselné funkce vaší databáze. Podle následujícího zdrojového kódu můžete použít agregační funkci pro konkrétní funkci:

importovat pandy jako pd
importovat numpy jako np
dataframe = pd.read_excel ('C: / Users / DELL / Desktop / foodsalesdata.xlsx ')
pivot_tble = pd.pivot_table (dataframe, index = ['Product'], values ​​= ['UnitPrice'], aggfunc = np.znamenat)
tisk (kontingenční_tabulka)

Odlišné mezi hodnotami vs. Sloupce v kontingenční tabulce

Hodnoty a sloupce jsou hlavním matoucím bodem v kontingenční tabulce. Je důležité si uvědomit, že sloupce jsou volitelná pole, zobrazující hodnoty výsledné tabulky vodorovně nahoře. Agregační funkce aggfunc se vztahuje na pole hodnot, které vypisujete.

importovat pandy jako pd
importovat numpy jako np
dataframe = pd.read_excel ('C: / Users / DELL / Desktop / foodsalesdata.xlsx ')
pivot_tble = pd.pivot_table (dataframe, index = ['Category', 'Product', 'City'], values ​​= ['UnitPrice', 'Quantity'],
columns = ['Region'], aggfunc = [np.součet])
tisk (kontingenční_tabulka)

Zpracování chybějících dat v kontingenční tabulce

Chybějící hodnoty v kontingenční tabulce můžete také zpracovat pomocí 'fill_value' Parametr. To vám umožní nahradit hodnoty NaN nějakou novou hodnotou, kterou zadáte k vyplnění.

Například jsme odstranili všechny hodnoty null z výše uvedené výsledné tabulky spuštěním následujícího kódu a nahradíme hodnoty NaN 0 v celé výsledné tabulce.

importovat pandy jako pd
importovat numpy jako np
dataframe = pd.read_excel ('C: / Users / DELL / Desktop / foodsalesdata.xlsx ')
pivot_tble = pd.pivot_table (dataframe, index = ['Category', 'Product', 'City'], values ​​= ['UnitPrice', 'Quantity'],
columns = ['Region'], aggfunc = [np.součet], fill_value = 0)
tisk (kontingenční_tabulka)

Filtrování v kontingenční tabulce

Jakmile je výsledek vygenerován, můžete použít filtr pomocí standardní funkce datového rámce. Vezměme si příklad. Filtrujte ty produkty, jejichž UnitPrice je nižší než 60. Zobrazuje produkty, jejichž cena je nižší než 60.

importovat pandy jako pd
importovat numpy jako np
dataframe = pd.read_excel ('C: / Users / DELL / Desktop / foodsalesdata.xlsx ', index_col = 0)
pivot_tble = pd.pivot_table (dataframe, index = 'Product', values ​​= 'UnitPrice', aggfunc = 'sum')
low_price = pivot_tble [pivot_tble ['UnitPrice'] < 60]
tisk (nízká cena)

Pomocí jiné metody dotazu můžete filtrovat výsledky. Například Například jsme filtrovali kategorii cookies na základě následujících funkcí:

importovat pandy jako pd
importovat numpy jako np
dataframe = pd.read_excel ('C: / Users / DELL / Desktop / foodsalesdata.xlsx ', index_col = 0)
pivot_tble = pd.pivot_table (dataframe, index = ["Kategorie", "Město", "Region"], hodnoty = ["UnitPrice", "Množství"], aggfunc = np.součet)
pt = kontingenční tabulka.dotaz ('Kategorie == ["Cookies"]') '
tisk (pt)

Výstup:

Vizualizujte data kontingenční tabulky

Chcete-li vizualizovat data kontingenční tabulky, postupujte následujícím způsobem:

importovat pandy jako pd
importovat numpy jako np
import matplotlib.pyplot jako plt
dataframe = pd.read_excel ('C: / Users / DELL / Desktop / foodsalesdata.xlsx ', index_col = 0)
pivot_tble = pd.pivot_table (dataframe, index = ["kategorie", "produkt"], hodnoty = ["jednotková cena"])
kontingenční tabulka.plot (druh = 'bar');
plt.ukázat()

Ve výše uvedené vizualizaci jsme spolu s kategoriemi ukázali jednotkovou cenu různých produktů.

Závěr

Zkoumali jsme, jak můžete vygenerovat kontingenční tabulku z datového rámce pomocí Pandas python. Kontingenční tabulka umožňuje generovat hluboké poznatky o vašich datových sadách. Viděli jsme, jak vygenerovat jednoduchou kontingenční tabulku pomocí více indexů a aplikovat filtry na kontingenční tabulky. Kromě toho jsme také ukázali vykreslení dat kontingenční tabulky a doplnění chybějících dat.

Hry Nainstalujte si nejnovější strategickou hru OpenRA na Ubuntu Linux
Nainstalujte si nejnovější strategickou hru OpenRA na Ubuntu Linux
OpenRA je herní engine Libre / Free Real Time Strategy, který obnovuje rané hry Westwood, jako je klasický Command & Conquer: Red Alert. Distribuované...
Hry Nainstalujte si nejnovější Dolphin Emulator pro Gamecube a Wii na Linuxu
Nainstalujte si nejnovější Dolphin Emulator pro Gamecube a Wii na Linuxu
Emulátor Dolphin vám umožní hrát vybrané hry Gamecube a Wii na osobních počítačích se systémem Linux (PC). Jako volně dostupný herní emulátor s otevř...
Hry Jak používat GameConqueror Cheat Engine v Linuxu
Jak používat GameConqueror Cheat Engine v Linuxu
Tento článek popisuje průvodce používáním cheatovacího modulu GameConqueror v systému Linux. Mnoho uživatelů, kteří hrají hry v systému Windows, často...