Skip to content

Commit ae56abe

Browse files
committed
Rozdeleni kapitoly Datova analyza
1 parent 1b3c93d commit ae56abe

File tree

3 files changed

+180
-180
lines changed

3 files changed

+180
-180
lines changed

python-pro-data-1/datova-analyza/datova-analyza.md

Lines changed: 2 additions & 180 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@ Do datové analýzy můžeme započítat velké množství činnost. Typickými
1919

2020
Různé zdroje se shodují, že nejvíce času je věnování právě získávání a čištění dat. Je to i klíčový bod, protože s chybnými nebo špatně upravenými daty zpravidla dojdeme ke špatným závěrům. Zpravidla máme data z více zdrojů, pak je nutné data správně propojit (např. osoby bychom neměli propojovat podle jména a příjmení, protože v datech můžeme mít více osob se stejným jménem a příjmením).
2121

22-
#### Strojové učení
22+
### Strojové učení
2323

2424
Součástí zpracování je i **strojové učení** (machine learning), což si můžeme představit jako používání různých algoritmů k hledání společných trendů a závislostí mezi daty a vytváření predikcí. Často je to označování jako **datová věda** (machine learning).
2525

2626
Strojové učení má spoustu různých aplikací. Služby jako Netflix nebo Youtube mají spoustu dat o tom, jaká videa uživatel sledoval, a úkolem datové vědy je nabízet uživatelům obsah, který je zaujme. U kybernetické bezpečnosti máme spoustu dat o tom, jaká data putují sítí, a úkolem je rozpoznat podezřelý provoz, který může být způsoben nějakým kybernetickým útokem.
2727

2828

29-
#### Proč se datovou analýzou zabýváme
29+
### Proč se datovou analýzou zabýváme
3030

3131
V současné době zažívá datová analýza a strojové učení velký rozmach. To má několik předpokladů:
3232

@@ -37,181 +37,3 @@ V současné době zažívá datová analýza a strojové učení velký rozmach
3737
Kromě Pythonu se pro zpracování dat používá jazyk R. Výhodou Pythonu je, že jde o obecný jazyk, se kterým můžeme provádět spoustu dalších věcí, R je jazyk zaměřený pouze na zpracování dat.
3838

3939
Pro Python existuje obrovské množství nástrojů, které pro analýzu dat můžeme použít. My si ukážeme moduly `pandas` a `matplotlib`.
40-
41-
### Odkud data bereme
42-
43-
Data se nejčastěji nachází v databázích nebo v souborech.
44-
45-
Data můžeme v základu rozdělit na textová data (včetně dat, která můžeme na texty převést), videa, obrázky a zvuky atd. My se budeme zabývat textovými daty, protože ty jsou pro zpracování nejjednodušší.
46-
47-
#### Zápisy textových dat
48-
49-
Podívejme se nyní na základní formáty, jak zapisovat data. Pro nás nejznámější formou je tabulka.
50-
51-
| Jméno | Věc | Částka v korunách |
52-
| :----- | :-------------- | ----------------: |
53-
| Petr | Prací prášek | 399 |
54-
| Ondra | Savo | 80 |
55-
| Petr | Toaletní papír | 65 |
56-
| Libor | Pivo | 124 |
57-
| Petr | Pytel na odpadky | 75 |
58-
| Míša | Utěrky na nádobí | 130 |
59-
| Ondra | Toaletní papír | 120 |
60-
| Míša | Pečící papír | 30 |
61-
| Zuzka | Savo | 80 |
62-
| Pavla | Máslo | 50 |
63-
| Ondra | Káva | 300 |
64-
65-
S tabulkami pracujeme v software Microsoft Excel (soubory mají příponu `.xlsx`), případně v alternativách jako Google Spreadsheet, Libre Office Calc atd. Python umí pracovat přímo se soubory XLSX, slouží k tomu modul `openpyxl` (můžete ho stáhnout [zde](https://openpyxl.readthedocs.io/en/stable/)), případně s nimi lze pracovat i v `pandas`. Práce s nimi je ale poměrně složitá, proto budeme používat soubory CSV.
66-
67-
Soubor CSV obsahuje data v textové podobě ve struktuře podobné tabulce. Jednotlivé buňky jsou odděleny **středníky** nebo **čárkami**. Většinou závisí na nastavení našeho systému.
68-
69-
```
70-
Jméno,Věc,Částka v korunách
71-
Petr,Prací prášek,399
72-
Ondra,Savo,80
73-
Petr,Toaletní papír,65
74-
Libor,Pivo,124
75-
Petr,Pytel na odpadky,75
76-
Míša,Utěrky na nádobí,130
77-
Ondra,Toaletní papír,120
78-
Míša,Pečící papír,30
79-
Zuzka,Savo,80
80-
Pavla,Máslo,50
81-
Ondra,Káva,300
82-
```
83-
84-
Kromě CVS používáme další dva důležité formáty: JSON (JavaScript Object Notation), XML (Extensible Markup Language).
85-
86-
Formát JSON ti bude povědomý, pokud už jsi v Pythonu pracoval(a) se slovníky (`dict`). Na první pohled vypadají téměř stejně. Python ti navíc jednoduše umožní data ve formátu JSON převést na slovníky a seznamy. K tomu slouží modul příhodně pojmenovaný `json`. S tímto formátem si ale hravě poradí i `pandas`.
87-
88-
```json
89-
[
90-
{
91-
"Jméno": "Petr",
92-
"Věc": "Prací prášek",
93-
"Částka v korunách": 399
94-
},
95-
{
96-
"Jméno": "Ondra",
97-
"Věc": "Savo",
98-
"Částka v korunách": 80
99-
},
100-
{
101-
"Jméno": "Petr",
102-
"Věc": "Toaletní papír",
103-
"Částka v korunách": 65
104-
},
105-
{
106-
"Jméno": "Libor",
107-
"Věc": "Pivo",
108-
"Částka v korunách": 124
109-
},
110-
{
111-
"Jméno": "Petr",
112-
"Věc": "Pytel na odpadky",
113-
"Částka v korunách": 75
114-
},
115-
{
116-
"Jméno": "Míša",
117-
"Věc": "Utěrky na nádobí",
118-
"Částka v korunách": 130
119-
},
120-
{
121-
"Jméno": "Ondra",
122-
"Věc": "Toaletní papír",
123-
"Částka v korunách": 120
124-
},
125-
{
126-
"Jméno": "Míša",
127-
"Věc": "Pečící papír",
128-
"Částka v korunách": 30
129-
},
130-
{
131-
"Jméno": "Zuzka",
132-
"Věc": "Savo",
133-
"Částka v korunách": 80
134-
},
135-
{
136-
"Jméno": "Pavla",
137-
"Věc": "Máslo",
138-
"Částka v korunách": 50
139-
},
140-
{
141-
"Jméno": "Ondra",
142-
"Věc": "Káva",
143-
"Částka v korunách": 300
144-
}
145-
]
146-
```
147-
148-
Dalším používaným formátem je XML. XML je velmi podobné HTML, tedy jazyku, kterým určujeme, jak má vypadat webová stránka.
149-
150-
```xml
151-
<?xml version="1.0" encoding="UTF-8"?>
152-
<nákupy>
153-
<nákup jméno="Petr" věc="Prací prášek">399</nákup>
154-
<nákup jméno="Ondra" věc="Savo">80</nákup>
155-
<nákup jméno="Petr" věc="Toaletní papír">65</nákup>
156-
<nákup jméno="Libor" věc="Pivo">124</nákup>
157-
<nákup jméno="Petr" věc="Pytel na odpadky">75</nákup>
158-
<nákup jméno="Míša" věc="Utěrky na nádobí">130</nákup>
159-
<nákup jméno="Ondra" věc="Toaletní papír">120</nákup>
160-
<nákup jméno="Míša" věc="Pečící papír">30</nákup>
161-
<nákup jméno="Zuzka" věc="Savo">80</nákup>
162-
<nákup jméno="Pavla" věc="Máslo">50</nákup>
163-
<nákup jméno="Ondra" věc="Káva">300</nákup>
164-
</nákupy>
165-
```
166-
167-
XML (a HTML) je založeno na párových značkách (tag). V naší ukázce máme například párovou značku `nákupy`, v níž leží veškerá data. Dále máme značku `nákup`, která symbolizuje řádek tabulky. Každá dvojice se skládá ze zahajovací a ukončovací značky. Ukončovací značku poznáme podle symbolu lomítka (`/`).
168-
169-
Každá značka může mít atributy (attribute), v našem případě máme atributy `jméno` a `věc`. Vždy píšeme název atributu, symbol `=` a hodnotu atributu v uvozovkách (podobně jako v Pythonu můžeme používat apostrofy `'` i složené uvozovky `"`).
170-
171-
Tag může mít i hodnotu, kterou píšeme mezi zahajovací a ukončovací značku.
172-
173-
Protože data zapisujeme jako hodnoty a atributy, můžeme jednu tabulku zapsat více způsoby.
174-
175-
U obou formátů musíme dodržovat základní pravidla, jinak bude soubor pro počítač nečitelný.
176-
177-
#### Čtení na doma - formát YAML
178-
179-
Nejnovějším z formátů je YAML (YAML Ain't Markup Language), který vznikl v roce 2011. Byl vyvinut s ohledem pro snadnou čtenost člověkem.
180-
181-
```yaml
182-
- Jméno: Petr
183-
Věc: Prací prášek
184-
Částka v korunách: 399
185-
- Jméno: Ondra
186-
Věc: Savo
187-
Částka v korunách: 80
188-
- Jméno: Petr
189-
Věc: Toaletní papír
190-
Částka v korunách: 65
191-
- Jméno: Libor
192-
Věc: Pivo
193-
Částka v korunách: 124
194-
- Jméno: Petr
195-
Věc: Pytel na odpadky
196-
Částka v korunách: 75
197-
- Jméno: Míša
198-
Věc: Utěrky na nádobí
199-
Částka v korunách: 130
200-
- Jméno: Ondra
201-
Věc: Toaletní papír
202-
Částka v korunách: 120
203-
- Jméno: Míša
204-
Věc: Pečící papír
205-
Částka v korunách: 30
206-
- Jméno: Zuzka
207-
Věc: Savo
208-
Částka v korunách: 80
209-
- Jméno: Pavla
210-
Věc: Máslo
211-
Částka v korunách: 50
212-
- Jméno: Ondra
213-
Věc: Káva
214-
Částka v korunách: 300
215-
```
216-
217-
Používá se především pro zapisování konfigurace programů.

python-pro-data-1/datova-analyza/entry.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,4 @@ title: Datová analýza
22
lead: O čem datová analýza vlastně je a proč se jí zabýváme.
33
sections:
44
- datova-analyza
5+
- formaty-souboru
Lines changed: 177 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,177 @@
1+
## Odkud data bereme
2+
3+
Data se nejčastěji nachází v databázích nebo v souborech.
4+
5+
Data můžeme v základu rozdělit na textová data (včetně dat, která můžeme na texty převést), videa, obrázky a zvuky atd. My se budeme zabývat textovými daty, protože ty jsou pro zpracování nejjednodušší.
6+
7+
### Zápisy textových dat
8+
9+
Podívejme se nyní na základní formáty, jak zapisovat data. Pro nás nejznámější formou je tabulka.
10+
11+
| Jméno | Věc | Částka v korunách |
12+
| :----- | :-------------- | ----------------: |
13+
| Petr | Prací prášek | 399 |
14+
| Ondra | Savo | 80 |
15+
| Petr | Toaletní papír | 65 |
16+
| Libor | Pivo | 124 |
17+
| Petr | Pytel na odpadky | 75 |
18+
| Míša | Utěrky na nádobí | 130 |
19+
| Ondra | Toaletní papír | 120 |
20+
| Míša | Pečící papír | 30 |
21+
| Zuzka | Savo | 80 |
22+
| Pavla | Máslo | 50 |
23+
| Ondra | Káva | 300 |
24+
25+
S tabulkami pracujeme v software Microsoft Excel (soubory mají příponu `.xlsx`), případně v alternativách jako Google Spreadsheet, Libre Office Calc atd. Python umí pracovat přímo se soubory XLSX, slouží k tomu modul `openpyxl` (můžete ho stáhnout [zde](https://openpyxl.readthedocs.io/en/stable/)), případně s nimi lze pracovat i v `pandas`. Práce s nimi je ale poměrně složitá, proto budeme používat soubory CSV.
26+
27+
Soubor CSV obsahuje data v textové podobě ve struktuře podobné tabulce. Jednotlivé buňky jsou odděleny **středníky** nebo **čárkami**. Většinou závisí na nastavení našeho systému.
28+
29+
```
30+
Jméno,Věc,Částka v korunách
31+
Petr,Prací prášek,399
32+
Ondra,Savo,80
33+
Petr,Toaletní papír,65
34+
Libor,Pivo,124
35+
Petr,Pytel na odpadky,75
36+
Míša,Utěrky na nádobí,130
37+
Ondra,Toaletní papír,120
38+
Míša,Pečící papír,30
39+
Zuzka,Savo,80
40+
Pavla,Máslo,50
41+
Ondra,Káva,300
42+
```
43+
44+
Kromě CVS používáme další dva důležité formáty: JSON (JavaScript Object Notation), XML (Extensible Markup Language).
45+
46+
Formát JSON ti bude povědomý, pokud už jsi v Pythonu pracoval(a) se slovníky (`dict`). Na první pohled vypadají téměř stejně. Python ti navíc jednoduše umožní data ve formátu JSON převést na slovníky a seznamy. K tomu slouží modul příhodně pojmenovaný `json`. S tímto formátem si ale hravě poradí i `pandas`.
47+
48+
```json
49+
[
50+
{
51+
"Jméno": "Petr",
52+
"Věc": "Prací prášek",
53+
"Částka v korunách": 399
54+
},
55+
{
56+
"Jméno": "Ondra",
57+
"Věc": "Savo",
58+
"Částka v korunách": 80
59+
},
60+
{
61+
"Jméno": "Petr",
62+
"Věc": "Toaletní papír",
63+
"Částka v korunách": 65
64+
},
65+
{
66+
"Jméno": "Libor",
67+
"Věc": "Pivo",
68+
"Částka v korunách": 124
69+
},
70+
{
71+
"Jméno": "Petr",
72+
"Věc": "Pytel na odpadky",
73+
"Částka v korunách": 75
74+
},
75+
{
76+
"Jméno": "Míša",
77+
"Věc": "Utěrky na nádobí",
78+
"Částka v korunách": 130
79+
},
80+
{
81+
"Jméno": "Ondra",
82+
"Věc": "Toaletní papír",
83+
"Částka v korunách": 120
84+
},
85+
{
86+
"Jméno": "Míša",
87+
"Věc": "Pečící papír",
88+
"Částka v korunách": 30
89+
},
90+
{
91+
"Jméno": "Zuzka",
92+
"Věc": "Savo",
93+
"Částka v korunách": 80
94+
},
95+
{
96+
"Jméno": "Pavla",
97+
"Věc": "Máslo",
98+
"Částka v korunách": 50
99+
},
100+
{
101+
"Jméno": "Ondra",
102+
"Věc": "Káva",
103+
"Částka v korunách": 300
104+
}
105+
]
106+
```
107+
108+
Dalším používaným formátem je XML. XML je velmi podobné HTML, tedy jazyku, kterým určujeme, jak má vypadat webová stránka.
109+
110+
```xml
111+
<?xml version="1.0" encoding="UTF-8"?>
112+
<nákupy>
113+
<nákup jméno="Petr" věc="Prací prášek">399</nákup>
114+
<nákup jméno="Ondra" věc="Savo">80</nákup>
115+
<nákup jméno="Petr" věc="Toaletní papír">65</nákup>
116+
<nákup jméno="Libor" věc="Pivo">124</nákup>
117+
<nákup jméno="Petr" věc="Pytel na odpadky">75</nákup>
118+
<nákup jméno="Míša" věc="Utěrky na nádobí">130</nákup>
119+
<nákup jméno="Ondra" věc="Toaletní papír">120</nákup>
120+
<nákup jméno="Míša" věc="Pečící papír">30</nákup>
121+
<nákup jméno="Zuzka" věc="Savo">80</nákup>
122+
<nákup jméno="Pavla" věc="Máslo">50</nákup>
123+
<nákup jméno="Ondra" věc="Káva">300</nákup>
124+
</nákupy>
125+
```
126+
127+
XML (a HTML) je založeno na párových značkách (tag). V naší ukázce máme například párovou značku `nákupy`, v níž leží veškerá data. Dále máme značku `nákup`, která symbolizuje řádek tabulky. Každá dvojice se skládá ze zahajovací a ukončovací značky. Ukončovací značku poznáme podle symbolu lomítka (`/`).
128+
129+
Každá značka může mít atributy (attribute), v našem případě máme atributy `jméno` a `věc`. Vždy píšeme název atributu, symbol `=` a hodnotu atributu v uvozovkách (podobně jako v Pythonu můžeme používat apostrofy `'` i složené uvozovky `"`).
130+
131+
Tag může mít i hodnotu, kterou píšeme mezi zahajovací a ukončovací značku.
132+
133+
Protože data zapisujeme jako hodnoty a atributy, můžeme jednu tabulku zapsat více způsoby.
134+
135+
U obou formátů musíme dodržovat základní pravidla, jinak bude soubor pro počítač nečitelný.
136+
137+
### Čtení na doma - formát YAML
138+
139+
Nejnovějším z formátů je YAML (YAML Ain't Markup Language), který vznikl v roce 2011. Byl vyvinut s ohledem pro snadnou čtenost člověkem.
140+
141+
```yaml
142+
- Jméno: Petr
143+
Věc: Prací prášek
144+
Částka v korunách: 399
145+
- Jméno: Ondra
146+
Věc: Savo
147+
Částka v korunách: 80
148+
- Jméno: Petr
149+
Věc: Toaletní papír
150+
Částka v korunách: 65
151+
- Jméno: Libor
152+
Věc: Pivo
153+
Částka v korunách: 124
154+
- Jméno: Petr
155+
Věc: Pytel na odpadky
156+
Částka v korunách: 75
157+
- Jméno: Míša
158+
Věc: Utěrky na nádobí
159+
Částka v korunách: 130
160+
- Jméno: Ondra
161+
Věc: Toaletní papír
162+
Částka v korunách: 120
163+
- Jméno: Míša
164+
Věc: Pečící papír
165+
Částka v korunách: 30
166+
- Jméno: Zuzka
167+
Věc: Savo
168+
Částka v korunách: 80
169+
- Jméno: Pavla
170+
Věc: Máslo
171+
Částka v korunách: 50
172+
- Jméno: Ondra
173+
Věc: Káva
174+
Částka v korunách: 300
175+
```
176+
177+
Používá se především pro zapisování konfigurace programů.

0 commit comments

Comments
 (0)