From 15611e60cc3a8c047dcba3e3f822edf4232c2e33 Mon Sep 17 00:00:00 2001 From: Jan Pipek Date: Thu, 23 Jan 2020 07:47:24 +0100 Subject: [PATCH 1/3] Fix: title attribute on img tag (#49) --- lessons/pydata/eda-univariate-timeseries/index.ipynb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lessons/pydata/eda-univariate-timeseries/index.ipynb b/lessons/pydata/eda-univariate-timeseries/index.ipynb index 11415cfb99..656d49058b 100644 --- a/lessons/pydata/eda-univariate-timeseries/index.ipynb +++ b/lessons/pydata/eda-univariate-timeseries/index.ipynb @@ -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)" ] }, { @@ -4138,7 +4138,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.6" + "version": "3.7.3" } }, "nbformat": 4, From 86b8aea0229c124c2b13952db922bfcf7dbe6c68 Mon Sep 17 00:00:00 2001 From: Lumir Balhar Date: Wed, 22 Jan 2020 09:50:29 +0100 Subject: [PATCH 2/3] Remove course definition --- courses/info.yml | 1 - courses/pydata/info.yml | 42 ----------------------------------------- 2 files changed, 43 deletions(-) delete mode 100644 courses/pydata/info.yml diff --git a/courses/info.yml b/courses/info.yml index 980c586e0a..a1490c92a2 100644 --- a/courses/info.yml +++ b/courses/info.yml @@ -1,4 +1,3 @@ order: - pyladies - mi-pyt -- pydata diff --git a/courses/pydata/info.yml b/courses/pydata/info.yml deleted file mode 100644 index 55bc0934cf..0000000000 --- a/courses/pydata/info.yml +++ /dev/null @@ -1,42 +0,0 @@ -title: Kurz datové analýzy -description: Naučte se využít Python a nástroje pro něj napsané k datové analytice -long_description: | - - Materiály pro kurz datové analytiky v Pythonu tvořené ve spolupráci komunit - PyLadies a PyData. Materiály předpokládají znalost Pythonu na úrovni absolventů - začátečnického kurzu (PyLadies). - -canonical: true -vars: - coach-present: false -plan: -- title: Instalace a práce s Jupyter notebookem - slug: install - materials: - - lesson: pydata/install - - lesson: pydata/notebook - -- title: Základy práce s tabulkovými daty - slug: pandas - materials: - - lesson: pydata/pandas - -- title: Explorační datová analýza a analýza jedné proměnné - slug: pandas - materials: - - lesson: pydata/univariate - -- title: EDA - Analýza více proměnných a vztahů - slug: pandas - materials: - - lesson: pydata/multivariate - -- title: EDA - Nulové hodnoty a odlehlá pozorování - slug: pandas - materials: - - lesson: pydata/null_and_outliers - -- title: EDA - Pandas profiling - slug: pandas_profiling - materials: - - lesson: pydata/profiling From 3e6c7c54a8aa8ccaf459da9cdf31a6f56b1ff5de Mon Sep 17 00:00:00 2001 From: lessay Date: Tue, 28 Jan 2020 20:36:36 +0100 Subject: [PATCH 3/3] =?UTF-8?q?Drobn=C3=A9=20=C3=BApravy?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reformulace, překlepy, ... --- lessons/pydata/pandas_types/index.ipynb | 26 ++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/lessons/pydata/pandas_types/index.ipynb b/lessons/pydata/pandas_types/index.ipynb index 556743a1f6..6dfdcb1eb5 100644 --- a/lessons/pydata/pandas_types/index.ipynb +++ b/lessons/pydata/pandas_types/index.ipynb @@ -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)." ] @@ -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", @@ -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." ] }, { @@ -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." ] }, { @@ -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):" ] }, { @@ -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)." ] @@ -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." ] @@ -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", @@ -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:" ] }, { @@ -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." ] @@ -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`." ] }, {