Skip to content
This repository was archived by the owner on Sep 11, 2024. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion courses/info.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
order:
- pyladies
- mi-pyt
- pydata
42 changes: 0 additions & 42 deletions courses/pydata/info.yml

This file was deleted.

6 changes: 3 additions & 3 deletions lessons/pydata/eda-univariate-timeseries/index.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -83,9 +83,9 @@
"\n",
"Takto vypadají náhledy dvou listů ze souboru `P1PRUZ01.xls`, který obsahuje historická data z meteorologických měření v Praze - Ruzyni. Data jsou poměrně nepěkně uspořádána. Ani v Excelu by se s těmito soubory nepracovalo dobře ...\n",
"\n",
"![thumb_geografie.png](static/thumb_geografie.png \"Sheet 1\")\n",
"![thumb_geografie.png](static/thumb_geografie.png)\n",
"\n",
"![thumb_teplota.png](static/thumb_teplota.png \"Sheet 2\")"
"![thumb_teplota.png](static/thumb_teplota.png)"
]
},
{
Expand Down Expand Up @@ -4138,7 +4138,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.6"
"version": "3.7.3"
}
},
"nbformat": 4,
Expand Down
26 changes: 13 additions & 13 deletions lessons/pydata/pandas_types/index.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@
"source": [
"### Přidání nového sloupce\n",
"\n",
"Když chceme přidat nový sloupec (`Series`), přiřadíme ho do `DataFrame` jako hodnotu do slovníku - tedy v hranatých závorkách s názvem sloupce. Dobrá zpráva je, že stejně jako v konstruktoru si `pandas` \"poradí\" jak se `Series`, tak s obyčejným seznamem.\n",
"Když chceme přidat nový sloupec (`Series`), přiřadíme ho do `DataFrame` jako hodnotu do slovníku - tedy v hranatých závorkách s názvem sloupce. Dobrá zpráva je, že stejně jako v konstruktoru si `pandas` poradí jak se `Series`, tak s obyčejným seznamem.\n",
"\n",
"V našem konkrétním případě si najdeme a přidáme počet známých měsíců (velkých i malých)."
]
Expand Down Expand Up @@ -298,7 +298,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"💡 V tomto případě jsme přímo upravili existující `DataFrame`. Většina metod / operací v `pandas` (už znáš např. `set_index`) ve výchozím nastavení vždy vrací nový objekt - je to dobrým zvykem, který budeme dodržovat. Přiřazování sloupců je jednou z akceptovaných výjimek tohoto jinak uznávaného pravidla, zejména když se tabulka upravuje jen v úzkém rozsahu řádků kódů.\n",
"💡 V tomto případě jsme přímo upravili existující `DataFrame`. Většina metod / operací v `pandas` (už znáš např. `set_index`) ve výchozím nastavení vždy vrací nový objekt s aplikovanou úpravou a ten původní objekt nechá v nezměněném stavu. Je to dobrým zvykem, který budeme dodržovat. Přiřazování sloupců je jednou z akceptovaných výjimek tohoto jinak uznávaného pravidla, zejména když se tabulka upravuje jen v úzkém rozsahu řádků kódů.\n",
" \n",
"`DataFrame` však nabízí ještě metodu `assign`, která nemění tabulku, ale vytváří její kopii s přidanými (nebo nahrazenými) sloupci. Pokud se chceš vyhnout nepříjemnému sledování, kterou tabulku jsi změnil/a či nikoliv, `assign` ti můžeme jen doporučit.\n",
"\n",
Expand Down Expand Up @@ -602,7 +602,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"**Úkol**: Zkus (jedním či druhým způsobem) přidat sloupec s rokem objevu (`\"objeveno\"`). Údaje najdeš např. zde: https://cs.wikipedia.org/wiki/Slune%C4%8Dn%C3%AD_soustava."
"**Úkol**: Zkus (jedním či druhým způsobem) přidat sloupec s rokem objevu (`\"objeveno\"`). Údaje najdeš např. na https://cs.wikipedia.org/wiki/Slune%C4%8Dn%C3%AD_soustava."
]
},
{
Expand Down Expand Up @@ -1234,7 +1234,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"💡 Jistě se ptáš, co znamená **NaN** v tabulce. Tato hodnota, více slovy \"not a number\", označuje chybějící, neplatnou nebo neznámou hodnotu (v našem případě jsme ji nezadali, a tedy se není co divit). O problematice chybějících hodnot (a jejich napravování) si budeme povídat někdy příště, prozatím se jimi nenech znervóznit."
"💡 Jistě se ptáš, co znamená **NaN** v tabulce. Hodnota NaN (Not a Number) označuje chybějící, neplatnou nebo neznámou hodnotu. V našem příkladu jsme ji nezadali, tedy se není co divit. O problematice chybějících hodnot a jejich napravování si budeme povídat někdy příště, prozatím se jimi nenech znervóznit."
]
},
{
Expand Down Expand Up @@ -1413,16 +1413,16 @@
"source": [
"### Odstranění řádku\n",
"\n",
"Pro odebrání sloupce či řádku z DataFrame slouží metoda [`drop`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.drop.html). Její první argument očekává označení (index) jednoho nebo více řádků či sloupců, které chceš odebrat. Argument `axis` označuje, ve které dimenzi se operace má aplikovat - můžeš použít buď číslo 0 či 1 (odpovídá pořadí od nuly, ve kterém se uvádějí klíče při odkazování na buňky), anebo pojmenování dané dimenze:\n",
"Pro odebrání sloupce či řádku z DataFrame slouží metoda [`drop`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.drop.html). Její první argument očekává označení (index) jednoho nebo více řádků či sloupců, které chceš odebrat. Argument `axis` označuje, ve které dimenzi se operace má aplikovat. Můžeš použít buď číslo 0 či 1 (odpovídá pořadí od nuly, ve kterém se uvádějí klíče při odkazování na buňky), anebo pojmenování dané dimenze:\n",
"\n",
"Osa (axis):\n",
"\n",
"- 0 nebo \"index\" → řádky\n",
"- 1 nebo \"columns\" → sloupce\n",
"\n",
"(Tento argument používají i četné další metody a funkce, proto se ujisti, že mu rozumíš).\n",
"*Tento argument používají i četné další metody a funkce, proto se ujisti, že mu rozumíš*\n",
"\n",
"Když už jsme se vrátili do budoucnosti (resp. současnosti), vypořádejme se nemilosrdně s Plutem (pro metodu `drop` je výchozí hodnotou argumentu `axis` 0, a tedy to nemusíme psát):"
"Když už jsme se vrátili do budoucnosti (resp. současnosti), vypořádejme se nemilosrdně s Plutem (pro metodu `drop` je výchozí hodnotou argumentu `axis` 0, nemusíme ho tedy psát):"
]
},
{
Expand Down Expand Up @@ -1756,7 +1756,7 @@
"source": [
"#### Příprava dat\n",
"\n",
"V datovém kurzu budeme využívat různých datových sad (obvykle větších - takových, kde není praktické je celé zapsat v konstruktoru). Nyní opustíme planety a podíváme se na některé zajímavé charakteristiky zemí kolem světa (ježto definice toho, co je to země, je poněkud vágní, bereme v potaz členy OSN), zachycené k jednomu konkrétnímu roku uplynulé dekády (protože ne vždy jsou všechny údaje k dispozici, bereme poslední rok, kde je známo dost ukazatelů). Data pocházejí povětšinou z projektu [Gapminder](https://www.gapminder.org/), doplnili jsme je jen o několik dalších informací z wikipedie.\n",
"Nyní opustíme planety a podíváme se na některé zajímavé charakteristiky zemí kolem světa (ježto definice toho, co je to země, je poněkud vágní, bereme v potaz členy OSN), zachycené k jednomu konkrétnímu roku uplynulé dekády (protože ne vždy jsou všechny údaje k dispozici, bereme poslední rok, kde je známo dost ukazatelů). Data pocházejí povětšinou z projektu [Gapminder](https://www.gapminder.org/), doplnili jsme je jen o několik dalších informací z wikipedie.\n",
"\n",
"Následující kód (nemusíš mu rozumět) stáhne potřebný soubor a uloží ho v místním adresáři. Alternativně ho můžeš stáhnout manuálně z [https://raw.githubusercontent.com/janpipek/data-pro-pyladies/master/data/countries.csv](https://raw.githubusercontent.com/janpipek/data-pro-pyladies/master/data/countries.csv)."
]
Expand Down Expand Up @@ -2315,7 +2315,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Typy v pandas vycházejí z toho, jak je definuje knihovna `numpy` (obecně užitečná pro práci s numerickými poli a poskytující vektorové operace s rychlostí řádově vyšší než v Pythonu jako takovém). Ta potřebuje především vědět, jak alokovat pole pro prvky daného typu - na to, aby mohly být seřazeny efektivně jeden za druhým, a tedy i kolik bajtů paměti každý zabírá. Kopíruje přitom \"nativní\" datové typy, které už můžeš znát z jiných jazyků, např. [C](https://cs.wikipedia.org/wiki/C_(programovac%C3%AD_jazyk)). Umístění paměti je něco, co v Pythonu obvykle neřešíme, ale rychlé počítání se bez toho neobejde. My nepůjdeme do detailů, ale požadavek na rychlost se nám tu a tam vynoří a my budeme klást důraz na to, aby se operace dělaly \"vektorově\", řešily \"na úrovni numpy\".\n",
"Typy v pandas vycházejí z toho, jak je definuje knihovna `numpy` (obecně užitečná pro práci s numerickými poli a poskytující vektorové operace s rychlostí řádově vyšší než v Pythonu jako takovém). Ta potřebuje především vědět, jak alokovat pole pro prvky daného typu na to, aby mohly být seřazeny efektivně jeden za druhým, a tedy i kolik bajtů paměti každý zabírá. Kopíruje přitom \"nativní\" datové typy, které už můžeš znát z jiných jazyků (např. [C](https://cs.wikipedia.org/wiki/C_(programovac%C3%AD_jazyk))). Umístění v paměti je něco, co v Pythonu obvykle neřešíme, ale rychlé počítání se bez toho neobejde. My nepůjdeme do detailů, ale požadavek na rychlost se nám tu a tam vynoří a my budeme klást důraz na to, aby se operace prováděly na úrovni numpy a nikoliv v pythonu.\n",
"\n",
"Poněkud tajuplný systém typů v `numpy` (popsaný v [dokumentaci](https://docs.scipy.org/doc/numpy/user/basics.types.html)) je naštěstí v `pandas` (mírně) zjednodušen a nabízí jen několik užitečných základních (rodin) typů, které si teď představíme."
]
Expand All @@ -2326,7 +2326,7 @@
"source": [
"### Celá čísla (integers)\n",
"\n",
"V Pythonu je pro celá čísla vyhrazen přesně jeden typ: `int`, který možňuje pracovat s libovolně velkými celými čísly (0, -58 nebo třeba 123456789012345678901234567890). V `pandas` se můžeš setkat s `int8`, `int16`, `int32`, `int64`, `uint8`, `uint16`, `uint32` a `uint64` - všechny mají stejné základní vlastnosti a každý z nich má jen určitý rozsah čísel, která do něj lze uložit. Liší se velikostí paměti, kterou jedno číslo zabere (číslovka v názvu vyjadřuje počet bitů), a tím, zda jsou podporována i záporná čísla (předpona `u` znamená, že počítáme pouze s nulou a kladnými čísly). \n",
"V Pythonu je pro celá čísla vyhrazen přesně jeden typ: `int`, který možňuje pracovat s libovolně velkými celými čísly (0, -58 nebo třeba 123456789012345678901234567890). V `pandas` se můžeš setkat s `int8`, `int16`, `int32`, `int64`, `uint8`, `uint16`, `uint32` a `uint64` - všechny mají stejné základní vlastnosti a každý z nich má jen určitý rozsah čísel, která do něj lze uložit. Liší se velikostí paměti, kterou jedno číslo zabere (číslovka v názvu vyjadřuje počet bitů), a tím, zda jsou podporována i záporná čísla (předpona `u` znamená unsigned (bez znaménka), tedy že počítáme pouze s nulou a kladnými čísly). \n",
"\n",
"Rozsahy:\n",
"\n",
Expand Down Expand Up @@ -2442,7 +2442,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"**⚠ Pozor:** Když vybíráš konkrétní celočíselný typ, musíš si dát pozor na rozsahy, protože `pandas` tě nebude varovat, pokud se nějaká z tvých hodnot do rozsahu \"nevleze\" a vesele zahodí tu část binární reprezentace, která je navíc (a dostaneš mnohem menší číslo, než jsi čekal/a):"
"**⚠ Pozor:** Když vybíráš konkrétní celočíselný typ, musíš si dát pozor na rozsahy, protože `pandas` tě nebude varovat, pokud se nějaká z tvých hodnot do rozsahu \"nevleze\" a vesele zahodí tu část binární reprezentace, která je navíc a dostaneš mnohem menší číslo, než jsi čekal/a:"
]
},
{
Expand Down Expand Up @@ -2507,7 +2507,7 @@
"metadata": {},
"source": [
"- Když ho budeme explicitně požadovat, vyhodí se výjimka.\n",
"- Když `pandas` necháme dělat jeho práci, použije se obecný typ `object` a přijdeme o jistou část výhod: sloupec nám zabere násobně více paměti a aritmetické operace s ním jsou o řád až dva pomalejší. Dokud naší prioritou, není to zase takový problém.\n",
"- Když `pandas` necháme dělat jeho práci, použije se obecný typ `object` a přijdeme o jistou část výhod: sloupec nám zabere násobně více paměti a aritmetické operace s ním jsou o řád až dva pomalejší. Pokud to není naší prioritou, není to zase takový problém.\n",
"\n",
"Obecně proto doporučujeme držet se `int64`, resp. nechat `pandas`, aby jej za nás automaticky použil. Teprve v případě, že si to budou žádat přísné paměťové nároky, se ti vyplatí hledat ten \"nejvíce růžový\" typ."
]
Expand Down Expand Up @@ -3141,7 +3141,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"**Varování:** Nabádáme tě k opatrnosti při práci s omezenými celočíselnými typy. Podobně jako při jejich nevhodné konverzi, i tady může výsledek \"přetéct\" a ukazovat pochybné výsledky. O důvod víc, proč se držet `int64`."
"**Varování:** Nabádáme tě k opatrnosti při práci s omezenými celočíselnými typy. Podobně jako při jejich nevhodné konverzi, i tady může výsledek takzvaně přetéct a ukazovat pochybné výsledky. O důvod víc, proč se držet `int64`."
]
},
{
Expand Down