Skip to content

Commit 44985b2

Browse files
committed
Smazani vypisu shape
1 parent 0a64b6e commit 44985b2

File tree

1 file changed

+0
-26
lines changed

1 file changed

+0
-26
lines changed

python-pro-data-1/agregace-a-spojovani/propojeni-dat.md

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -47,18 +47,10 @@ Pokud by například nějaký student nebyl uvedený v tabulce se studenty, jeho
4747
print(u202.shape)
4848
```
4949

50-
```shell
51-
(15, 4)
52-
```
53-
5450
```py
5551
print(propojeny_df.shape)
5652
```
5753

58-
```shell
59-
(15, 5)
60-
```
61-
6254
Zde vidíme, že data jsou zřejmě v pořádku.
6355

6456
Dále připojíme tabulku [predsedajici.csv](assets/predsedajici.csv), kde máme vypsané předsedy maturitních komisí. Tu si opět načteme jako `DataFrame`.
@@ -74,12 +66,6 @@ novy_propojeny_df = pandas.merge(propojeny_df, preds)
7466
print(novy_propojeny_df.head())
7567
```
7668

77-
```shell
78-
Empty DataFrame
79-
Columns: [den, datum, jmeno, cisloStudenta, predmet, znamka]
80-
Index: []
81-
```
82-
8369
Tentokrát jsme příliš neuspěli, výsledný `DataFrame` je prázdný. Proč tomu tak je? Protože v obou `DataFrame` máme sloupec `jmeno`, v jednom případě však jde o jméno studenta a ve druhém o jméno předsedy komise. To ale `pandas` samozřejmě neví. Proto mu musíme říct, že chceme data spojit pouze podle sloupce `den`.
8470

8571
```py
@@ -102,21 +88,13 @@ Zatím to vypadá dobře. Pokud se ovšem podíváme na `shape`, něco nám tady
10288
print(novy_propojeny_df.shape)
10389
```
10490

105-
```shell
106-
(10, 8)
107-
```
108-
10991
Najednou máme v tabulce pouze 12 řádků, některé tedy zmizely. To znamená, že funkce `merge()` nenašla pro všechna zkoušení odpovídajícího předsedu. Jak je to možné? Zkusme nyní říct funkci `merge()`, aby nám zachovala v prvním `DataFrame` ty řádky, pro které nenajde odpovídající záznam. Této operaci se v jazyce SQL říká LEFT OUTER JOIN. My ho provede tak, že funkci `merge()` jako parametr `how` zadáme hodnotu `left`.
11092

11193
```py
11294
novy_propojeny_df = pandas.merge(propojeny_df, preds, on=['den'], how="outer")
11395
print(novy_propojeny_df.shape)
11496
```
11597

116-
```shell
117-
(14, 8)
118-
```
119-
12098
Tentokrát jsme již o data nepřišli, ale kde se stala chyba? Zkusme si zobrazit ty řádky, které se nepodařilo propojit. Poznáme je tak, že mají prázdný sloupec `datum`.
12199

122100
```py
@@ -140,10 +118,6 @@ novy_propojeny_df = pandas.merge(propojeny_df, preds, on=['den'], how="outer")
140118
print(novy_propojeny_df.shape)
141119
```
142120

143-
```shell
144-
(13, 8)
145-
```
146-
147121
Poslední nepříjemností, na kterou se podíváme, je to, že sloupce `jmeno` se automaticky přejmenovaly, aby neměly v tabulce stejný název. Zde můžeme použít metodu `rename`, abychom sloupečky přejmenovali na něco smysluplného.
148122

149123
```py

0 commit comments

Comments
 (0)