Kódím.cz
4

Spojování

Spojování nám umožní analyzovat data uložená v různých tabulkách nebo i data získaná z různých zdrojů

2
Místenky

Připravujeme systém pro správu místenek ve vlaku. Vlak má 2 vozy a každý vůz má 20 míst. Chceme vytvořit tabulku, kde bude pro každý vůz a každé místo jeden řádek se sloupcem pro jméno cestujícího.

Nejprve si vytvoř dvě tabulky - jednu se seznamem vozů a druhou se seznamem míst. V kódu níže využíváme funkci range(), která vygeneruje posloupnost celých čísel. Funkce přijímá dva parametry - začátek (včetně) a konec (bez něj). Například range(1, 3) vygeneruje čísla 1, 2.

Tabulku vytváříme pomocí pd.DataFrame(), kterému předáme slovník. Klíč slovníku se stane názvem sloupce a hodnota (v našem případě výsledek funkce range()) se stane obsahem sloupce.

import pandas as pd

vozy = pd.DataFrame({"vuz": range(1, 3)})
mista = pd.DataFrame({"misto": range(1, 21)})

Pomocí cross join (how="cross") vytvoř tabulku mistenky, která bude obsahovat všechny kombinace vozů a míst.

Přidej do tabulky sloupec jmeno s prázdnou hodnotou (např. prázdný řetězec "").

Nastav sloupce vuz a misto jako index tabulky pomocí metody set_index(). Nastavení dvou sloupců jako indexu funguje stejně jako u jednoho sloupce, jen názvy sloupců zadáme jako seznam.

tabulka = tabulka.set_index(["sloupec_1", "sloupec_2"])

Nakonec do prvního vozu na místo 13 zapiš své jméno a vypiš si tabulku.

Řešení