Kontingenční tabulky nadále patří mezi nejuznávanější a nejpoužívanější nástroje v rámci MS Excel. Ať už jste datový analytik, datový inženýr nebo jednoduše běžný uživatel, je pravděpodobné, že již máte slabé místo pro MS Excel.

Existuje však stále větší prostor pro replikaci nástrojů a utilit MS Excel, zejména v Pythonu. Věděli jste, že můžete vytvořit rozsáhlé kontingenční tabulky v DataFrames Pythonu s několika řádky samotného kódu?

Ano, to je správně; pokud vás to zaujalo, zde je návod, jak to udělat.

Předpoklady pro vytváření kontingenčních tabulek

Jako každý jiný programovací jazyk i Python potřebuje, abyste splnili několik předpokladů, než se dostanete ke kódování.

Chcete-li při vytváření své první kontingenční tabulky v Pythonu získat co nejvíce optimalizované prostředí, budete potřebovat následující:

  • Python IDE: Většina kódů Pythonu má v systému předinstalované integrované vývojové prostředí (IDE). Je jich několik IDE kompatibilní s Pythonem na trhu, včetně Jupyter Notebook, Spyder, PyCharm a mnoha dalších.
  • Vzorek dat: Pro ilustraci je zde ukázková datová sada, se kterou můžete pracovat. Případně můžete tyto kódy vyladit přímo ve svých živých datech.

Odkaz na ukázku dat:Ukázka supermarketu

Import základních knihoven

Vzhledem k tomu, že Python pracuje na konceptu knihoven třetích stran, musíte importovat soubor pandy knihovna pro vytváření pivotů.

Můžete k tomu použít Pandy importovat soubor Excel do Pythonu a ukládat data do DataFrame. Chcete-li importovat Pandy, použijte import příkaz následujícím způsobem:

import pandy tak jako pd

Jak vytvořit pivoty v Pythonu

Vzhledem k tomu, že knihovna je nyní k dispozici, musíte importovat soubor Excel do Pythonu, což je základ pro vytváření a testování pivotů v Pythonu. Uložte importovaná data do DataFrame s následujícím kódem:

# Vytvořte nový DataFrame
# zde nahraďte svou vlastní cestou
cesta = "C://Users//user/OneDrive//Desktop//"
# zde můžete definovat název souboru
soubor = "Ukázka - Superstore.xls"
df = pd.read_excel (cesta + soubor)
df.hlava()

Kde:

  • df: Název proměnné pro uložení dat DataFrame
  • pd: Alias ​​pro knihovnu Pandas
  • read_excel(): Funkce Pandas pro načtení souboru Excel do Pythonu
  • cesta: Umístění, kde je uložen soubor Excel (Sample Superstore)
  • soubor: Název souboru k importu
  • hlava(): Ve výchozím nastavení zobrazuje prvních pět řádků DataFrame

Výše uvedený kód importuje soubor Excel do Pythonu a ukládá data do DataFrame. Konečně, hlava zobrazí prvních pět řádků dat.

Tato funkce je užitečná pro zajištění správného importu dat do Pythonu.

Jaká pole kontingenční tabulky existují v Pythonu?

Stejně jako její protějšek Excel má kontingenční tabulka podobnou sadu polí v Pythonu. Zde je několik polí, o kterých byste měli vědět:

  • Data: Datové pole odkazuje na data uložená v Python DataFrame
  • Hodnoty: Sloupcová data použitá v rámci pivotu
  • Index: Indexový sloupec (s) pro seskupení dat
  • Sloupce: Sloupce pomáhají při agregaci existujících dat v rámci DataFrame

Účel použití funkce Index

Protože funkce indexu je primárním prvkem kontingenční tabulky, vrací základní rozložení dat. Jinými slovy, data můžete seskupit pomocí index funkce.

Předpokládejme, že chcete vidět nějaké agregované hodnoty pro produkty uvedené v Segment sloupec. Předdefinovanou agregaci (střední hodnotu) v Pythonu můžete vypočítat definováním určených sloupců jako hodnoty indexu.

df.pivot_table (index = "Segment")

Kde:

  • df:DataFrame obsahující data
  • kontingenční_tabulka:Funkce kontingenční tabulky v Pythonu
  • index: Vestavěná funkce pro definování sloupce jako indexu
  • Segment: Sloupec, který se má použít jako hodnota indexu

V názvech proměnných Pythonu se rozlišují velká a malá písmena, takže se vyhněte přechodu od předdefinovaných názvů proměnných uvedených v této příručce.

Jak používat hodnoty více indexů

Pokud chcete použít více sloupců indexu, můžete definovat názvy sloupců v a seznam v rámci funkce indexu. Jediné, co musíte udělat, je zadat názvy sloupců v sadě hranaté závorky ([ ]), Jak je ukázáno níže:

df.pivot_table (index = ["Kategorie", "Podkategorie"])

Funkce pivot odsadí sloupec indexu ve výstupu. Python zobrazí znamenat všech číselných hodnot vůči každé hodnotě indexu.

Naučte se omezit hodnoty ve výstupu

Protože Python ve výchozím nastavení vybírá všechny číselné sloupce, můžete omezit hodnoty a vyladit výsledky zobrazené v konečném výstupu. Použijte hodnoty funkce pro definování sloupců, které chcete vidět.

df.pivot_table (index = ["Kraj", "Kategorie", "Podkategorie"], hodnoty = "Odbyt")

V konečném výstupu budou tři sloupce indexu a střední hodnoty pro sloupec Prodej se postaví proti každému prvku.

Definování agregačních funkcí v kontingenční tabulce

Co se stane, když nechcete ve výchozím nastavení vypočítat střední hodnoty? Kontingenční tabulka má mnoho dalších funkcí, které přesahují výpočet jednoduchého průměru.

Zde je návod, jak napsat kód:

df.pivot_table (index = ["Kategorie"], hodnoty = "Odbyt", aggfunc = [součet, maximum, min, délka])

Kde:

  • součet: Vypočítá součet hodnot
  • max: Vypočítá maximální hodnotu
  • min: Vypočítá maximální hodnotu
  • len: Vypočítá počet hodnot

Každou z těchto funkcí můžete také definovat v samostatných řádcích kódu.

Jak přidat celkové součty do kontingenční tabulky

Žádný datový majetek není úplný bez celkových součtů. Chcete-li vypočítat a zobrazit celkové součty na sloupec dat, použijte okraje a název_marže funkce.

df.pivot_table (index = ["Kategorie"], hodnoty = "Odbyt", aggfunc = [součet, max, min, délka], okraje=True, název_marže='Celkové součty')

Kde:

  • okraje: Funkce pro výpočet celkového součtu
  • margins_name: Zadejte název kategorie ve sloupci indexu (například celkové součty)

Upravte a použijte konečný kód

Zde je konečný stručný kód:

import pandy tak jako pd
# zde nahraďte svou vlastní cestou
cesta = "C://Users//user/OneDrive//Desktop//"
# zde můžete definovat název souboru
soubor = "Ukázka - Superstore.xls"
df = pd.read_excel (cesta + soubor)
df.pivot_table (index = ["Kraj", "Kategorie", "Podkategorie"], hodnoty = "Odbyt",
aggfunc = [součet, maximum, min, délka],
okraje =Skutečný,
margins_name='Celkové součty')

Vytváření kontingenčních tabulek v Pythonu

Když používáte kontingenční tabulky, možnosti jsou prostě nekonečné. Python vám umožňuje snadno pracovat s rozsáhlými datovými poli bez obav z nesrovnalostí v datech a systémových zpoždění.

Vzhledem k tomu, že funkce Pythonu nejsou omezeny pouze na zhušťování dat do pivotů, můžete kombinovat více sešitů a listů aplikace Excel a zároveň provádět řadu souvisejících funkcí s Pythonem.

S Pythonem je na obzoru vždy něco nového.