Skip to content

Commit eaede1d

Browse files
authored
Přesun "Výběr sloupců" dříve (#6)
Resolves #5
1 parent 03fed7f commit eaede1d

File tree

2 files changed

+65
-11
lines changed

2 files changed

+65
-11
lines changed

python-pro-data-1/nacteni-dat/nacteni-dat.md

Lines changed: 64 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,68 @@ Názvy všech sloupců pak z vlastnosti `columns`:
103103
Index(['Jméno', 'Datum', 'Věc', 'Částka v korunách'], dtype='object')
104104
```
105105

106-
### Index
106+
107+
### Výběr sloupců
108+
109+
V některých případech nás jako první při práci s daty napadne nějak si data zjednodušit. Například budeme chtít v DataFrame vybrat pouze některé sloupce, a to co nás nezajímá, můžeme zahodit.
110+
111+
K tomu použijeme výběr sloupců pomocí hranatých závorek. Zápis připomíná práci se seznamy - hranatou závorku napíšeme přímo za název proměnné, kde máme uložený `DataFrame`, a do ní vepíšeme název sloupce, který nás zajímá.
112+
113+
```
114+
>>> nakupy['Věc']
115+
0 Prací prášek
116+
1 Savo
117+
2 Toaletní papír
118+
3 Pivo
119+
4 Pytel na odpadky
120+
5 Utěrky na nádobí
121+
6 Toaletní papír
122+
7 Pečící papír
123+
8 Savo
124+
9 Máslo
125+
10 Káva
126+
Name: Věc, dtype: object
127+
```
128+
129+
Zde je důležité říct, že pokud vybíráme pouze jeden sloupec, vrátí se nám takzvaná **Série** (`Series`), což je jiný datový typ než DataFrame. Sérii si představme jako jednorozměrnou tabulku.
130+
131+
Pro výběr více sloupců musíme do indexace DataFrame vložit seznam s názvy sloupců.
132+
133+
```
134+
>>> nakupy[['Jméno', 'Částka v korunách']]
135+
Jméno Částka v korunách
136+
0 Petr 399
137+
1 Ondra 80
138+
2 Petr 65
139+
3 Libor 124
140+
4 Petr 75
141+
5 Míša 130
142+
6 Ondra 120
143+
7 Míša 30
144+
8 Zuzka 80
145+
9 Pavla 50
146+
10 Ondra 300
147+
```
148+
149+
Tady se nám již vrátil datový typ DataFrame. Tohoto triku můžeme využít, když chceme získat pouze jeden sloupec, ale nechceme ho v datovém typu Série, ale jako DataFrame.
150+
151+
```
152+
>>> nakupy[['Věc']]
153+
Věc
154+
0 Prací prášek
155+
1 Savo
156+
2 Toaletní papír
157+
3 Pivo
158+
4 Pytel na odpadky
159+
5 Utěrky na nádobí
160+
6 Toaletní papír
161+
7 Pečící papír
162+
8 Savo
163+
9 Máslo
164+
10 Káva
165+
```
166+
167+
### Výběr řádků pomocí čísla řádku
107168

108169
Jak už víme, v `pandas` má každý řádek přiřazený index. Jako index můžeme zvolit některý ze sloupců. Pokud však tabulku načteme bez toho, abychom specifikovali index, `pandas` nám vytvoří **číselný index** automaticky. Je to něco podobného jako číslování řádků v Excelu.
109170

@@ -120,7 +181,7 @@ Věc Pivo
120181
Name: 3, dtype: object
121182
```
122183

123-
Všimni si, že když jsme chtěli pouze jeden řádek, vypsal se nám výsledek jinak orientovaný, než když jsme chtěli řádků více. Je to proto, že pokud vybíráme pouze jeden řádek, vrátí nám takzvanou **sérii** (`Series`), což je jiný datový typ než DataFrame.
184+
Všimni si, že když jsme chtěli pouze jeden řádek, vypsal se nám výsledek jinak orientovaný. Výběr jednoho řádku nám vrátí Sérii stejně jako v případě výběru jediného sloupce. Pohled na tento řádek pak máme orientovaný na výšku.
124185

125186
Metoda `iloc[]` umožňuje pro výběr řádků použít rozsah ve formátu `od:do`. K tomu používáme **dvojtečku**. Před dvojtečku píšeme první řádek, který chceme vypsat a za dvojtečku první řádek, který již vy výpisu nebude. Pokud tedy například napíšeme `nakupy.iloc[3:5]`, získáme řádky s indexy 3 a 4, ale už ne řádek s indexem 5.
126187

@@ -161,13 +222,6 @@ Nevýhodou postupu je, že si musíme předem zjistit, jak kolik řádků máme.
161222
10 Ondra 2020-07-25 Káva 300
162223
```
163224

164-
**Tip:** Trik s dvojtečkou funguje i u sekvencí. Můžeme jej použít třeba na řetězce.
165-
166-
```pycon
167-
>>> pozdrav = "Ahoj Jirko"
168-
>>> pozdrav[-5:]
169-
'Jirko'
170-
```
171225

172226
#### Začátek a konec jinak
173227

@@ -195,7 +249,7 @@ Na prvních a posledních několik řádků se chceme podívat často, hlavně v
195249
10 Ondra 2020-07-25 Káva 300
196250
```
197251

198-
#### Sloupce
252+
#### Výběr řádků a sloupců podle čísla
199253

200254
Kromě řádků si často chceme vybrat jen některé sloupce, protože mnoho tabulek obsahuje spoustu různých informací a ne všechny nás musejí zajímat. Čísla sloupců zadáváme jako druhý parametr funkce `iloc`.
201255

python-pro-data-1/zakladni-dotazy/zakladni-dotazy.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ Nyní si vyzkoušíme jednu z hlavních prací datového analytika, a to je **ps
128128

129129
#### Výběr sloupců
130130

131-
Již jsme si říkali, že ne vždy nás zajímají všechna data. Sloupce již umíme vybrat pomocí funkce `loc`. Funkce `loc` je praktická, pokud vybíráme konkrétní řádky a k nim nějaké konkrétní sloupce. Pokud ale chceme vybrat jen sloupec a zachovat všechny řádky, zpravidla použijeme výběr sloupců pomocí hranatých závorek. Zápis připomíná práci se seznamy - hranatou závorku napíšeme přímo za název proměnné, kde máme uložený `DataFrame`, a do ní vepíšeme název sloupce, který nás zajímá.
131+
Již jsme si říkali, že ne vždy nás zajímají všechna data. Řádky již umíme vybrat pomocí funkce `loc`. Funkce `loc` je praktická, pokud vybíráme konkrétní řádky a k nim nějaké konkrétní sloupce. Dále si zopakujme, že pokud chceme vybrat jen sloupec a zachovat všechny řádky, zpravidla použijeme výběr sloupců pomocí hranatých závorek.
132132

133133
```pycon
134134
>>> staty["population"]

0 commit comments

Comments
 (0)