In [1]:
import pandas as pd
import csv
In [2]:
dfRecipes = pd.read_csv('csv/fit.recepty.csv')
dfProducts = pd.read_csv('csv/products.csv')
dfCategories = pd.read_csv('csv/out_categories.csv')
In [3]:
dfProducts.rename(columns={'primary_category.id': 'cat_id'}, inplace=True)
dfCategories.rename(columns={'category_id' : 'cat_id'}, inplace=True)
In [4]:
dfCategories.head()
Out[4]:
cat_id category_path
0 300102026 Ovoce a zelenina/Bylinky a koření
1 300102000 Ovoce a zelenina
2 300102027 Ovoce a zelenina/Bylinky a koření/Řezané
3 300102001 Ovoce a zelenina/Ovoce
4 300102039 Ovoce a zelenina/Ovoce/Bio ovoce

Joiny

Joiny sa pouzivaju na kombinovanie riadkov z 2 alebo viacerych tabuliek na zaklade spolocneho identifikatora medzi nimi.

Typy joinov

  • Inner join
  • Left join
  • Right join
  • Outer join

Inner join

Inner join spoji vsetky riadky z oboch tabuliek, kde sa nachadza zhoda v jednej aj v druhej tabulke. Inner join je to iste ako zapis join.

Priklad Prepojenie produktov a kategorii produktov. Inner join vrati zoznam produktov, ktore maju pridelenu kategoriu. Ak su v tabulke produktov, zaznamy, ktore kategoriu priradenu nemaju, tieto produkty vratene nebudu.

SQL ukazka

SELECT *
FROM "dfProducts" as df1
INNER JOIN "dfCategories" as df2
ON df1.cat_id = df2.cat_id;

In [5]:
dfInnerJoin = pd.merge(dfProducts, dfCategories, on='cat_id')
In [6]:
dfInnerJoin
Out[6]:
badge brand_name categories country_of_origin crc32 description id image image_large ingredients ... price_currency price_for_bottle.amount price_for_bottle.currency price_for_unit_amount price_for_unit_currency cat_id unit weight weight_variations category_path
0 NaN Nivea [{'id': 300109000}, {'id': 300109103}, {'id': ... dle aktuální nabídky 4119786657 Nivea Sprej antiperspirant Silver Protect Dyna... 1296725 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Butane\nIosbutane\nPropane\nCyclomethicone\nAl... ... CZK NaN NaN 432,67 CZK 300109110.0 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
1 NaN NaN [{'id': 300109000}, {'id': 300109103}, {'id': ... dle aktuální nabídky 1164047169 NaN 1303675 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Alcohol denat.\nIsobutane\nPropane\nButane\nIs... ... CZK NaN NaN 532,67 CZK 300109110.0 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
2 NaN NaN [{'id': 300109000}, {'id': 300109103}, {'id': ... dle aktuální nabídky 3495741254 NaN 1303677 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Alcohol denat.\nIsobutane\nPropane\nButane\nPa... ... CZK NaN NaN 532,67 CZK 300109110.0 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
3 NaN NaN [{'id': 300109000}, {'id': 300109103}, {'id': ... dle aktuální nabídky 2911924383 NaN 1303681 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Alcohol denat.\nIsobutane\nPropane\nButane\nIs... ... CZK NaN NaN 532,67 CZK 300109110.0 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
4 NaN NaN [{'id': 300109000}, {'id': 300109103}, {'id': ... dle aktuální nabídky 2097797367 Antiperspirant sprej pro muže.\n\nBezpečnostní... 1307193 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Butane\nIsobutane\nPropane\nAluminum chlorohyd... ... CZK NaN NaN 466 CZK 300109110.0 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
5 NaN NaN [{'id': 134253}, {'id': 300109000}, {'id': 300... dle aktuální nabídky 2706881168 Antiperspirant sprej pro muže. Bezpečnostní va... 1307201 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Butane\nIsobutane\nPropane\nCyclopentasiloxane... ... CZK NaN NaN 466 CZK 300109110.0 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
6 NaN NaN [{'id': 134253}, {'id': 300109000}, {'id': 300... dle aktuální nabídky 3446774679 Antiperspirant sprej pro muže. Bezpečnostní va... 1307215 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Butane\nIsobutane\nPropane\nAluminum chlorohyd... ... CZK NaN NaN 466 CZK 300109110.0 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
7 NaN NaN [{'id': 134253}, {'id': 300109000}, {'id': 300... dle aktuální nabídky 108038283 Antiperspirant sprej pro muže. Bezpečnostní va... 1307221 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Butane\nIsobutane\nPropane\nAluminum chlorohyd... ... CZK NaN NaN 466 CZK 300109110.0 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
8 NaN NaN [{'id': 300109000}, {'id': 300109103}, {'id': ... dle aktuální nabídky 2536318912 Objevte 48 hodinovou dlouhotrvající deo ochran... 1307893 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Butane\nAlcohol denat.\nPropane\nIsobutane\nTr... ... CZK NaN NaN 366 CZK 300109110.0 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
9 NaN NaN [{'id': 300109000}, {'id': 300109103}, {'id': ... dle aktuální nabídky 3110451995 Objevte až 72hodinovou silnou deo ochranu pro ... 1307897 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Butane\nPropane\nAqua\nAluminum chlorohydrate\... ... CZK NaN NaN 332,67 CZK 300109110.0 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
10 NaN NaN [{'id': 300109000}, {'id': 300109103}, {'id': ... dle aktuální nabídky 1730019137 Objevte deodorant Fa Men Attraction Force s dl... 1307899 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Butane\nAlcohol denat.\nPropane\nIsobutane\nTr... ... CZK NaN NaN 366 CZK 300109110.0 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
11 NaN NaN [{'id': 300109000}, {'id': 300109103}, {'id': ... dle aktuální nabídky 2060185702 Objevte smyslně svěží vůni deodorantu Fa Men D... 1307901 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Butane\nAlcohol denat.\nPropane\nIsobutane\nTr... ... CZK NaN NaN 366 CZK 300109110.0 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
12 NaN NaN [{'id': 300109000}, {'id': 300109103}, {'id': ... dle aktuální nabídky 3951328418 Antiperspirant Fa Men Xtreme Polar s chladivým... 1307903 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Butane, Propane, Cyclomethicone, Aluminum Chlo... ... CZK NaN NaN 466 CZK 300109110.0 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
13 NaN NaN [{'id': 300109000}, {'id': 300109103}, {'id': ... dle aktuální nabídky 3462073540 Antiperspirant Fa Men Xtreme Protect 5 nabízí ... 1307907 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Butane, Propane, Cyclomethicone, Aluminum Chlo... ... CZK NaN NaN 466 CZK 300109110.0 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
14 NaN NaN [{'id': 300109000}, {'id': 300109103}, {'id': ... dle aktuální nabídky 2701918087 Antiperspirant Invisible Power pro 72hodinovou... 1307909 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Butane\nPropane\nAqua\nAluminum chlorohydrate\... ... CZK NaN NaN 466 CZK 300109110.0 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
15 NaN NaN [{'id': 300109000}, {'id': 300109103}, {'id': ... dle aktuální nabídky 1385161795 Antiperspirant Fa Men Xtreme Sports - 72hodino... 1307911 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Butane\nPropane\nCyclomethicone\nAluminum chlo... ... CZK NaN NaN 466 CZK 300109110.0 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
16 NaN NaN [{'id': 300109000}, {'id': 300109103}, {'id': ... dle aktuální nabídky 3498178885 UPOZORNĚNÍ: Před použitím protřepat. Aplikujte... 1308185 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Butane\nIsobutane\nPropane\nAluminum chlorohyd... ... CZK NaN NaN 466 CZK 300109110.0 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
17 NaN NaN [{'id': 300109000}, {'id': 300109103}, {'id': ... Velká Británie 2579246222 Nebezpečí\nExtrémně hořlavý aerosol.\n\nUPOZOR... 1312351 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Butane\nIsobutane\nPropane\nAluminum chlorohyd... ... CZK NaN NaN 499,33 CZK 300109110.0 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
18 NaN NaN [{'id': 300109000}, {'id': 300109103}, {'id': ... Velká Británie 112018558 Intenzivní ochrana\nPomáhá chránit proti podrá... 1312895 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Butane\nIsobutane\nPropane\nAluminum chlorohyd... ... CZK NaN NaN 532,67 CZK 300109110.0 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
19 NaN NaN [{'id': 300109000}, {'id': 300109103}, {'id': ... Velká Británie 31668473 UPOZORNĚNÍ: Před použitím protřepat. Aplikujte... 1312935 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Butane\nIsobutane\nPropane\nAluminum chlorohyd... ... CZK NaN NaN 359,6 CZK 300109110.0 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
20 NaN NaN [{'id': 300109000}, {'id': 300109103}, {'id': ... Velká Británie 3325362378 UPOZORNĚNÍ: Před použitím protřepat. Aplikujte... 1312943 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... NaN ... CZK NaN NaN 466 CZK 300109110.0 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
21 NaN NaN [{'id': 300109000}, {'id': 300109103}, {'id': ... Velká Británie 622339322 UPOZORNĚNÍ: Před použitím protřepat. Aplikujte... 1312945 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Butane\nIsobutane\nPropane\nAluminum chlorohyd... ... CZK NaN NaN 359,6 CZK 300109110.0 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
22 NaN NaN [{'id': 300109000}, {'id': 300109103}, {'id': ... Velká Británie 2316672247 Aplikujte přímo na pokožku ve vzdálenosti 15 c... 1314145 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Alcohol denat.\nButane\nIsobutane\nPropane\nPa... ... CZK NaN NaN 599,33 CZK 300109110.0 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
23 NaN NaN [{'id': 300109000}, {'id': 300109103}, {'id': ... Velká Británie 1747656348 Aplikujte přímo na pokožku ve vzdálenosti 15 c... 1314149 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Alcohol denat.\nButane\nIsobutane\nPropane\nPa... ... CZK NaN NaN 532,67 CZK 300109110.0 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
24 NaN NaN [{'id': 300109000}, {'id': 300109103}, {'id': ... Velká Británie 2561545720 Aplikujte přímo na pokožku ve vzdálenosti 15 c... 1314153 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Butane\nIsobutane\nPropane\nCyclopentasiloxane... ... CZK NaN NaN 599,33 CZK 300109110.0 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
25 NaN NaN [{'id': 300109000}, {'id': 300109103}, {'id': ... Velká Británie 3849728602 Aplikujte přímo na pokožku ve vzdálenosti 15 c... 1314155 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Butane\nIsobutane\nPropane\nCyclopentasiloxane... ... CZK NaN NaN 599,33 CZK 300109110.0 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
26 NaN NaN [{'id': 300109000}, {'id': 300109103}, {'id': ... Velká Británie 1522931044 Aplikujte přímo na pokožku ve vzdálenosti 15 c... 1314157 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Butane\nIsobutane\nPropane\nCyclopentasiloxane... ... CZK NaN NaN 599,33 CZK 300109110.0 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
27 NaN NaN [{'id': 300109000}, {'id': 300109103}, {'id': ... Velká Británie 3012125861 Aplikujte přímo na pokožku ve vzdálenosti 15 c... 1314159 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Alcohol denat.\nButane\nIsobutane\nPropane\nPa... ... CZK NaN NaN 599,33 CZK 300109110.0 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
28 NaN NaN [{'id': 300109000}, {'id': 300109103}, {'id': ... Holandsko 3341698103 Antiperspirant deodorant sprej Dove Men+Care I... 1291201 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... NaN ... CZK NaN NaN 499,33 CZK 300109110.0 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
29 NaN NaN [{'id': 300109000}, {'id': 300109103}, {'id': ... Holandsko 931342496 Dove Men +Care Silver Control antiperspirant v... 1291207 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Butane\nIsobutane\nPropane\nAluminum chlorohyd... ... CZK NaN NaN 499,33 CZK 300109110.0 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
10883 NaN NaN [{'id': 300111000}, {'id': 300111091}, {'id': ... Německo 528278923 Super Slims. 1293019 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... NaN ... CZK NaN NaN 104 CZK 300111094.0 krabička NaN False Domácnost/Tabák a cigarety/Cigarety/Slim
10884 NaN NaN [{'id': 300108000}, {'id': 300108001}, {'id': ... Česká republika 1708403036 Sušené mléko Bohemilk je vyrobeno z kvalitního... 1295703 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Složení: MLÉKO\n\nAlergeny: Mléko a výrobky z ... ... CZK NaN NaN 199,75 CZK 300108006.0 kg NaN False Nápoje/Káva/Příslušenství ke kávě
10885 NaN NaN [{'id': 300108000}, {'id': 300108001}, {'id': ... Česká republika 2802801466 Snadno rozpustné. Použití všude tam, kde je za... 1287977 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Složení: MLÉKO\n\nAlergeny: Mléko a výrobky z ... ... CZK NaN NaN 199,75 CZK 300108006.0 kg NaN False Nápoje/Káva/Příslušenství ke kávě
10886 NaN NaN [{'id': 300108000}, {'id': 300108001}, {'id': ... EU 2342413863 Sušená syrovátka v biokvalitě. Syrovátka Amálk... 1290647 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Sušená syrovátka, produkt kontrolovaného ekolo... ... CZK NaN NaN 199,8 CZK 300108006.0 kg NaN False Nápoje/Káva/Příslušenství ke kávě
10887 NaN NaN [{'id': 300109000}, {'id': 300109134}, {'id': ... Německo 359077126 PRO MUŽE s citlivou pletí, kteří chtějí bojova... 743759 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Aqua, TEA-palmitate, Oleth-20, Isopentane, Gly... ... CZK NaN NaN 549,5 CZK 300109135.0 l NaN False Drogerie a kosmetika/Pánské toaletní potřeby/H...
10888 NaN NaN [{'id': 133331}, {'id': 134815}, {'id': 134817... Itálie 937519701 Salát z mořských plodů\n\nUpozorňujeme, že ten... 1290543 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Složení: Mix MĚKKÝŠŮ a KORÝŠŮ (65 %) (kalamáry... ... CZK NaN NaN 645 CZK 300104029.0 kg NaN False Uzeniny a lahůdky/Rybí speciality/Nakládané mo...
10889 NaN NaN [{'id': 300103000}, {'id': 300103031}, {'id': ... Itálie 3592988845 Carpaccio z chobotnice\n\nUpozorňujeme, že ten... 1290545 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Složení: Chobotnice (53 %)(MĚKKÝŠ), slunečnico... ... CZK NaN NaN 773,33 CZK 300104029.0 kg NaN False Uzeniny a lahůdky/Rybí speciality/Nakládané mo...
10890 NaN NaN [{'id': 300104000}, {'id': 300104025}, {'id': ... Itálie 271608779 Grilované sépie\n\nUpozorňujeme, že tento prod... 1290549 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Složení: Sépie (70 %)(MĚKKÝŠ), slunečnicový ol... ... CZK NaN NaN 945 CZK 300104029.0 kg NaN False Uzeniny a lahůdky/Rybí speciality/Nakládané mo...
10891 NaN NaN [{'id': 133337}, {'id': 75557}, {'id': 75565},... Německo 685470191 Vynikající bílé víno s dlouhotrvajícími jemným... 729873 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Složení: dealkoholizované víno, cukr, oxid uhl... ... CZK NaN NaN 180 CZK 300108071.0 l NaN False Nápoje/Víno/Nealkoholická
10892 NaN NaN [{'id': 133337}, {'id': 75557}, {'id': 133103}... Česká republika 984352090 Nealkoholické šumivé víno bílé.\n\nUpozorňujem... 1293489 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Složení: víno, OXID SIŘIČITÝ\n\nAlergeny: Oxid... ... CZK NaN NaN 186,53 CZK 300108071.0 l NaN False Nápoje/Víno/Nealkoholická
10893 NaN NaN [{'id': 300108000}, {'id': 300108064}, {'id': ... Německo 2752039316 Milujete víno, ale občas si prostě nemůžete do... 729857 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Složení: dealkoholizované víno, cukr, oxid uhl... ... CZK NaN NaN 200 CZK 300108071.0 l NaN False Nápoje/Víno/Nealkoholická
10894 NaN NaN [{'id': 300108000}, {'id': 300108064}, {'id': ... Německo 3298836933 Milujete víno, ale občas si prostě nemůžete do... 729867 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Složení: dealkoholizované víno, cukr, oxid uhl... ... CZK NaN NaN 200 CZK 300108071.0 l NaN False Nápoje/Víno/Nealkoholická
10895 NaN NaN [{'id': 300107000}, {'id': 300107010}, {'id': ... Maďarsko 3789276970 Hluboce zmražené kachní prsa.\n\nUpozorňujeme,... 715953 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Složení: jednosložková potravina\n\nAlergeny: ... ... CZK NaN NaN 345 CZK 300107011.0 kg NaN False Mražené/Maso a drůbež/Drůbež a králík
10896 NaN NaN [{'id': 300108000}, {'id': 300108044}, {'id': ... Francie 1270053188 Profesionální barmanský sirup Monin, základní ... 1290791 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Složení: Voda,Cukr,Koncentrovaná citrónová a l... ... CZK NaN NaN 169 CZK 300108045.0 l NaN False Nápoje/Sirupy/Koktejlové
10897 NaN NaN [{'id': 300108000}, {'id': 300108044}, {'id': ... Francie 1022021837 Profesionální barmanský sirup Monin, základní ... 1290795 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Složení: Cukr,Pitná voda,Okyselující činidlo: ... ... CZK NaN NaN 355,71 CZK 300108045.0 l NaN False Nápoje/Sirupy/Koktejlové
10898 NaN NaN [{'id': 300108000}, {'id': 300108044}, {'id': ... Francie 3177476107 Profesionální barmanský sirup Monin, základní ... 1290797 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Složení: Cukr,Pitná voda,Aroma,Emulgátor: arab... ... CZK NaN NaN 398,57 CZK 300108045.0 l NaN False Nápoje/Sirupy/Koktejlové
10899 NaN NaN [{'id': 300108000}, {'id': 300108044}, {'id': ... Francie 3067034451 Karamel je jednoduše karamelizovaný cukr tradi... 734187 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Složení: Cukr,Voda,Aroma,Kyselina: kyselina ci... ... CZK NaN NaN 299 CZK 300108045.0 l NaN False Nápoje/Sirupy/Koktejlové
10900 NaN NaN [{'id': 300108000}, {'id': 300108044}, {'id': ... Francie 2303210761 Monin cucumber - okurka 0,7 l. Víte co znamená... 1250681 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Složení: Cukr, pitná voda, aroma, kyselina cit... ... CZK NaN NaN 412,86 CZK 300108045.0 l NaN False Nápoje/Sirupy/Koktejlové
10901 NaN NaN [{'id': 300108000}, {'id': 300108044}, {'id': ... Francie 701558522 Při výrobě nejlepšího vanilkového sirupu na sv... 734225 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Složení: Cukr,Pitná voda,Přírodní aroma,Vanilk... ... CZK NaN NaN 398,57 CZK 300108045.0 l NaN False Nápoje/Sirupy/Koktejlové
10902 NaN NaN [{'id': 300105000}, {'id': 300105026}, {'id': ... Francie 3793240535 \n\nUpozorňujeme, že tento produkt může obsaho... 712901 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Složení: sýry (Emmental 36%, Comté 11%, Tomme ... ... CZK NaN NaN 333,11 CZK 300105037.0 kg NaN False Mléčné a chlazené/Sýry/Fondue a raklet
10903 NaN NaN [{'id': 75403}, {'id': 75413}, {'id': 75463}, ... Francie 2582495697 Polotvrdý sýr vhodný k rozpečení\n\nUpozorňuje... 710915 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Složení: kravské MLÉKO, jedlá sůl, MLÉKÁRENSKÉ... ... CZK NaN NaN 499,75 CZK 300105037.0 kg NaN False Mléčné a chlazené/Sýry/Fondue a raklet
10904 NaN NaN [{'id': 300108000}, {'id': 300108072}, {'id': ... Itálie 3946969213 Cinzano je světově proslulý alkoholický nápoj ... 1293475 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... víno, cukr, voda, aroma, konzervant: oxid siři... ... CZK NaN NaN 257 CZK 300108077.0 l NaN False Nápoje/Lihoviny/Aperitivy
10905 NaN NaN [{'id': 300108000}, {'id': 300108072}, {'id': ... Itálie 3781488250 Cinzano je světově proslulý alkoholický nápoj ... 1293479 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... víno, cukr, voda, aroma, konzervant: oxid siři... ... CZK NaN NaN 257 CZK 300108077.0 l NaN False Nápoje/Lihoviny/Aperitivy
10906 NaN NaN [{'id': 300108000}, {'id': 300108072}, {'id': ... Itálie 2622014301 Martini Bianco vermut poprvé spatřilo světlo s... 763141 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Složení: obsahuje SIŘIČITANY\n\nAlergeny: Oxid... ... CZK NaN NaN 252 CZK 300108077.0 l NaN False Nápoje/Lihoviny/Aperitivy
10907 NaN NaN [{'id': 133331}, {'id': 133855}, {'id': 134957... Itálie 1380895324 Pochází z roku 1964 z italského regionu Piedmo... 1293487 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... voda, cukr, extrakt z bylin, aroma, oxid uhlič... ... CZK NaN NaN 248,75 CZK 300108077.0 l NaN False Nápoje/Lihoviny/Aperitivy
10908 NaN NaN [{'id': 300108000}, {'id': 300108072}, {'id': ... Itálie 3617561112 Martini je světově nejprodávanějším vermutem.T... 763143 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Složení: obsahuje siřičitany\n\nAlergeny: Oxid... ... CZK NaN NaN 252 CZK 300108077.0 l NaN False Nápoje/Lihoviny/Aperitivy
10909 NaN NaN [{'id': 300108000}, {'id': 300108072}, {'id': ... Itálie 1998245335 Aperol „UnLimited Summer“ je limitovaná edice ... 1293481 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... voda, cukr, líh, rostlinné výtažky, aroma (obs... ... CZK NaN NaN 427,14 CZK 300108077.0 l NaN False Nápoje/Lihoviny/Aperitivy
10910 NaN NaN [{'id': 300108000}, {'id': 300108072}, {'id': ... Itálie 1713501431 Campari je moderní klasika. Původní receptura ... 1293491 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Bitter: voda, líh, cukr, přírodní aroma, barvi... ... CZK NaN NaN 570 CZK 300108077.0 l NaN False Nápoje/Lihoviny/Aperitivy
10911 NaN NaN [{'id': 133331}, {'id': 133855}, {'id': 133871... Irsko 2801839720 Šest vyjímečných 200 gramových mražených hověz... 1295621 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Složení: Irish hovězí maso 98,9%, sůl, mletý č... ... CZK NaN NaN 1295 CZK 300107012.0 kg NaN False Mražené/Maso a drůbež/Hovězí a burgery
10912 NaN NaN [{'id': 133331}, {'id': 134837}, {'id': 134843... Francie 2755295245 \n\nUpozorňujeme, že tento produkt může obsaho... 961187 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Složení: 100% králičí maso\n\nAlergeny: ... CZK NaN NaN 249 CZK 300103007.0 kg NaN True Maso a ryby/Drůbeží a králičí/Králík

10913 rows × 24 columns

In [7]:
dfInnerJoin.shape
Out[7]:
(10913, 24)

Left join

Left join nam vrati vsetky riadky z lavej tabulky (tabulka1), ktore najdu zhodu z pravej tabulky (tabulka2), vratane nulovy hodnot.

Priklad Prepojenie produktov a kategorii, kedy sa nam vrati zoznam vsetkych produktov (z lavej tabulky) , ak aj nemaju priradene ziadne category id z tabulky kategorii (pravej tabulky).

SQL ukazka

SELECT *
FROM "dfProducts" as df1
LEFT OUTER JOIN "dfCategories" as df2
ON df1.cat_id = df2.cat_id;

In [8]:
dfLeftJoin = pd.merge(dfProducts, dfCategories, on='cat_id', how='left')
dfLeftJoin.head()
Out[8]:
badge brand_name categories country_of_origin crc32 description id image image_large ingredients ... price_currency price_for_bottle.amount price_for_bottle.currency price_for_unit_amount price_for_unit_currency cat_id unit weight weight_variations category_path
0 NaN Nivea [{'id': 300109000}, {'id': 300109103}, {'id': ... dle aktuální nabídky 4119786657 Nivea Sprej antiperspirant Silver Protect Dyna... 1296725 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Butane\nIosbutane\nPropane\nCyclomethicone\nAl... ... CZK NaN NaN 432,67 CZK 300109110.0 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
1 NaN Nivea [{'id': 300109000}, {'id': 300109103}, {'id': ... dle aktuální nabídky 3851673989 Předchází vzniku bílých stop na černém oblečen... 1296731 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Stearyl alcohol\nPPG-14 butyl ether\nCyclometh... ... CZK NaN NaN 1622,5 CZK NaN kg NaN False NaN
2 NaN Nivea [{'id': 300109000}, {'id': 300109103}, {'id': ... dle aktuální nabídky 3818404418 48 h ochrana\nBez alkoholu a barviv\nDermatolo... 1296737 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Butane\nIsobutane\nPropane\nAluminum chlorohyd... ... CZK NaN NaN 432,67 CZK 300109105.0 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
3 NaN Nivea [{'id': 300109000}, {'id': 300109127}, {'id': ... dle aktuální nabídky 3698401885 Nivea® Intimo Sprchová emulze Sensitive je spe... 1296749 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Aqua\nCocamidopropyl betaine\nSodium laureth s... ... CZK NaN NaN 399,6 CZK NaN l NaN False NaN
4 NaN Nivea [{'id': 300109000}, {'id': 300109060}, {'id': ... dle aktuální nabídky 2384072835 Krémové tekuté mýdlo na ruce s jedinečnou vůní... 1296751 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Aqua\nCocamidopropyl betaine\nSodium laureth s... ... CZK NaN NaN 199,6 CZK NaN l NaN False NaN

5 rows × 24 columns

In [9]:
dfLeftJoin.shape
Out[9]:
(10957, 24)

Right join

Right join nam vrati vsetky riadky z pravej tabulky (tabulka2), ktore najdu zhodu z lavej tabulky (tabulka1), vratane nulovych hodnot.

Priklad Prepojenie produktov a kategorii, kedy sa nam vrati zoznam vsetkych kategorii (z pravej tabulky) , ak aj nemaju priradene ziadne category id z tabulky produktov (lavej tabulky).

SQL ukazka

SELECT *
FROM "dfProducts" as df1
RIGHT OUTER JOIN "dfCategories" as df2
ON df1.cat_id = df2.cat_id;

In [10]:
dfRightJoin = pd.merge(dfProducts, dfCategories, on='cat_id', how='right')
dfRightJoin
Out[10]:
badge brand_name categories country_of_origin crc32 description id image image_large ingredients ... price_currency price_for_bottle.amount price_for_bottle.currency price_for_unit_amount price_for_unit_currency cat_id unit weight weight_variations category_path
0 NaN Nivea [{'id': 300109000}, {'id': 300109103}, {'id': ... dle aktuální nabídky 4.119787e+09 Nivea Sprej antiperspirant Silver Protect Dyna... 1296725.0 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Butane\nIosbutane\nPropane\nCyclomethicone\nAl... ... CZK NaN NaN 432,67 CZK 3.001091e+08 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
1 NaN NaN [{'id': 300109000}, {'id': 300109103}, {'id': ... dle aktuální nabídky 1.164047e+09 NaN 1303675.0 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Alcohol denat.\nIsobutane\nPropane\nButane\nIs... ... CZK NaN NaN 532,67 CZK 3.001091e+08 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
2 NaN NaN [{'id': 300109000}, {'id': 300109103}, {'id': ... dle aktuální nabídky 3.495741e+09 NaN 1303677.0 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Alcohol denat.\nIsobutane\nPropane\nButane\nPa... ... CZK NaN NaN 532,67 CZK 3.001091e+08 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
3 NaN NaN [{'id': 300109000}, {'id': 300109103}, {'id': ... dle aktuální nabídky 2.911924e+09 NaN 1303681.0 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Alcohol denat.\nIsobutane\nPropane\nButane\nIs... ... CZK NaN NaN 532,67 CZK 3.001091e+08 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
4 NaN NaN [{'id': 300109000}, {'id': 300109103}, {'id': ... dle aktuální nabídky 2.097797e+09 Antiperspirant sprej pro muže.\n\nBezpečnostní... 1307193.0 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Butane\nIsobutane\nPropane\nAluminum chlorohyd... ... CZK NaN NaN 466 CZK 3.001091e+08 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
5 NaN NaN [{'id': 134253}, {'id': 300109000}, {'id': 300... dle aktuální nabídky 2.706881e+09 Antiperspirant sprej pro muže. Bezpečnostní va... 1307201.0 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Butane\nIsobutane\nPropane\nCyclopentasiloxane... ... CZK NaN NaN 466 CZK 3.001091e+08 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
6 NaN NaN [{'id': 134253}, {'id': 300109000}, {'id': 300... dle aktuální nabídky 3.446775e+09 Antiperspirant sprej pro muže. Bezpečnostní va... 1307215.0 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Butane\nIsobutane\nPropane\nAluminum chlorohyd... ... CZK NaN NaN 466 CZK 3.001091e+08 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
7 NaN NaN [{'id': 134253}, {'id': 300109000}, {'id': 300... dle aktuální nabídky 1.080383e+08 Antiperspirant sprej pro muže. Bezpečnostní va... 1307221.0 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Butane\nIsobutane\nPropane\nAluminum chlorohyd... ... CZK NaN NaN 466 CZK 3.001091e+08 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
8 NaN NaN [{'id': 300109000}, {'id': 300109103}, {'id': ... dle aktuální nabídky 2.536319e+09 Objevte 48 hodinovou dlouhotrvající deo ochran... 1307893.0 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Butane\nAlcohol denat.\nPropane\nIsobutane\nTr... ... CZK NaN NaN 366 CZK 3.001091e+08 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
9 NaN NaN [{'id': 300109000}, {'id': 300109103}, {'id': ... dle aktuální nabídky 3.110452e+09 Objevte až 72hodinovou silnou deo ochranu pro ... 1307897.0 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Butane\nPropane\nAqua\nAluminum chlorohydrate\... ... CZK NaN NaN 332,67 CZK 3.001091e+08 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
10 NaN NaN [{'id': 300109000}, {'id': 300109103}, {'id': ... dle aktuální nabídky 1.730019e+09 Objevte deodorant Fa Men Attraction Force s dl... 1307899.0 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Butane\nAlcohol denat.\nPropane\nIsobutane\nTr... ... CZK NaN NaN 366 CZK 3.001091e+08 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
11 NaN NaN [{'id': 300109000}, {'id': 300109103}, {'id': ... dle aktuální nabídky 2.060186e+09 Objevte smyslně svěží vůni deodorantu Fa Men D... 1307901.0 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Butane\nAlcohol denat.\nPropane\nIsobutane\nTr... ... CZK NaN NaN 366 CZK 3.001091e+08 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
12 NaN NaN [{'id': 300109000}, {'id': 300109103}, {'id': ... dle aktuální nabídky 3.951328e+09 Antiperspirant Fa Men Xtreme Polar s chladivým... 1307903.0 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Butane, Propane, Cyclomethicone, Aluminum Chlo... ... CZK NaN NaN 466 CZK 3.001091e+08 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
13 NaN NaN [{'id': 300109000}, {'id': 300109103}, {'id': ... dle aktuální nabídky 3.462074e+09 Antiperspirant Fa Men Xtreme Protect 5 nabízí ... 1307907.0 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Butane, Propane, Cyclomethicone, Aluminum Chlo... ... CZK NaN NaN 466 CZK 3.001091e+08 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
14 NaN NaN [{'id': 300109000}, {'id': 300109103}, {'id': ... dle aktuální nabídky 2.701918e+09 Antiperspirant Invisible Power pro 72hodinovou... 1307909.0 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Butane\nPropane\nAqua\nAluminum chlorohydrate\... ... CZK NaN NaN 466 CZK 3.001091e+08 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
15 NaN NaN [{'id': 300109000}, {'id': 300109103}, {'id': ... dle aktuální nabídky 1.385162e+09 Antiperspirant Fa Men Xtreme Sports - 72hodino... 1307911.0 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Butane\nPropane\nCyclomethicone\nAluminum chlo... ... CZK NaN NaN 466 CZK 3.001091e+08 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
16 NaN NaN [{'id': 300109000}, {'id': 300109103}, {'id': ... dle aktuální nabídky 3.498179e+09 UPOZORNĚNÍ: Před použitím protřepat. Aplikujte... 1308185.0 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Butane\nIsobutane\nPropane\nAluminum chlorohyd... ... CZK NaN NaN 466 CZK 3.001091e+08 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
17 NaN NaN [{'id': 300109000}, {'id': 300109103}, {'id': ... Velká Británie 2.579246e+09 Nebezpečí\nExtrémně hořlavý aerosol.\n\nUPOZOR... 1312351.0 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Butane\nIsobutane\nPropane\nAluminum chlorohyd... ... CZK NaN NaN 499,33 CZK 3.001091e+08 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
18 NaN NaN [{'id': 300109000}, {'id': 300109103}, {'id': ... Velká Británie 1.120186e+08 Intenzivní ochrana\nPomáhá chránit proti podrá... 1312895.0 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Butane\nIsobutane\nPropane\nAluminum chlorohyd... ... CZK NaN NaN 532,67 CZK 3.001091e+08 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
19 NaN NaN [{'id': 300109000}, {'id': 300109103}, {'id': ... Velká Británie 3.166847e+07 UPOZORNĚNÍ: Před použitím protřepat. Aplikujte... 1312935.0 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Butane\nIsobutane\nPropane\nAluminum chlorohyd... ... CZK NaN NaN 359,6 CZK 3.001091e+08 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
20 NaN NaN [{'id': 300109000}, {'id': 300109103}, {'id': ... Velká Británie 3.325362e+09 UPOZORNĚNÍ: Před použitím protřepat. Aplikujte... 1312943.0 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... NaN ... CZK NaN NaN 466 CZK 3.001091e+08 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
21 NaN NaN [{'id': 300109000}, {'id': 300109103}, {'id': ... Velká Británie 6.223393e+08 UPOZORNĚNÍ: Před použitím protřepat. Aplikujte... 1312945.0 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Butane\nIsobutane\nPropane\nAluminum chlorohyd... ... CZK NaN NaN 359,6 CZK 3.001091e+08 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
22 NaN NaN [{'id': 300109000}, {'id': 300109103}, {'id': ... Velká Británie 2.316672e+09 Aplikujte přímo na pokožku ve vzdálenosti 15 c... 1314145.0 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Alcohol denat.\nButane\nIsobutane\nPropane\nPa... ... CZK NaN NaN 599,33 CZK 3.001091e+08 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
23 NaN NaN [{'id': 300109000}, {'id': 300109103}, {'id': ... Velká Británie 1.747656e+09 Aplikujte přímo na pokožku ve vzdálenosti 15 c... 1314149.0 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Alcohol denat.\nButane\nIsobutane\nPropane\nPa... ... CZK NaN NaN 532,67 CZK 3.001091e+08 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
24 NaN NaN [{'id': 300109000}, {'id': 300109103}, {'id': ... Velká Británie 2.561546e+09 Aplikujte přímo na pokožku ve vzdálenosti 15 c... 1314153.0 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Butane\nIsobutane\nPropane\nCyclopentasiloxane... ... CZK NaN NaN 599,33 CZK 3.001091e+08 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
25 NaN NaN [{'id': 300109000}, {'id': 300109103}, {'id': ... Velká Británie 3.849729e+09 Aplikujte přímo na pokožku ve vzdálenosti 15 c... 1314155.0 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Butane\nIsobutane\nPropane\nCyclopentasiloxane... ... CZK NaN NaN 599,33 CZK 3.001091e+08 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
26 NaN NaN [{'id': 300109000}, {'id': 300109103}, {'id': ... Velká Británie 1.522931e+09 Aplikujte přímo na pokožku ve vzdálenosti 15 c... 1314157.0 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Butane\nIsobutane\nPropane\nCyclopentasiloxane... ... CZK NaN NaN 599,33 CZK 3.001091e+08 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
27 NaN NaN [{'id': 300109000}, {'id': 300109103}, {'id': ... Velká Británie 3.012126e+09 Aplikujte přímo na pokožku ve vzdálenosti 15 c... 1314159.0 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Alcohol denat.\nButane\nIsobutane\nPropane\nPa... ... CZK NaN NaN 599,33 CZK 3.001091e+08 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
28 NaN NaN [{'id': 300109000}, {'id': 300109103}, {'id': ... Holandsko 3.341698e+09 Antiperspirant deodorant sprej Dove Men+Care I... 1291201.0 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... NaN ... CZK NaN NaN 499,33 CZK 3.001091e+08 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
29 NaN NaN [{'id': 300109000}, {'id': 300109103}, {'id': ... Holandsko 9.313425e+08 Dove Men +Care Silver Control antiperspirant v... 1291207.0 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Butane\nIsobutane\nPropane\nAluminum chlorohyd... ... CZK NaN NaN 499,33 CZK 3.001091e+08 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
11183 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 3.001120e+08 NaN NaN NaN Zvíře/Pes/Antiparazitní přípravky
11184 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 3.001120e+08 NaN NaN NaN Zvíře/Malá zvířata
11185 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 3.001120e+08 NaN NaN NaN Zvíře/Ptactvo
11186 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 3.001120e+08 NaN NaN NaN Zvíře/Akvaristika a teraristika
11187 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 1.306743e+09 NaN NaN NaN Cenové trháky/Dítě
11188 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 1.306740e+09 NaN NaN NaN Cenové trháky/Mražené
11189 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 1.306742e+09 NaN NaN NaN Cenové trháky/Drogerie a kosmetika
11190 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 1.306736e+09 NaN NaN NaN Cenové trháky/Maso a ryby
11191 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 1.306739e+09 NaN NaN NaN Cenové trháky/Trvanlivé
11192 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 1.306738e+09 NaN NaN NaN Cenové trháky/Mléčné a chlazené
11193 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 1.306741e+09 NaN NaN NaN Cenové trháky/Nápoje
11194 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 1.306737e+09 NaN NaN NaN Cenové trháky/Uzeniny a lahůdky
11195 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 1.306734e+09 NaN NaN NaN Cenové trháky/Pekárna a cukrárna
11196 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 1.306735e+09 NaN NaN NaN Cenové trháky/Ovoce a zelenina
11197 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 1.306745e+09 NaN NaN NaN Cenové trháky/Zvíře
11198 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 1.306744e+09 NaN NaN NaN Cenové trháky/Domácnost
11199 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 1.306745e+09 NaN NaN NaN Cenové trháky/Výprodej
11200 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 1.323515e+09 NaN NaN NaN Novinky/Mléčné a chlazené
11201 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 1.323512e+09 NaN NaN NaN Novinky/Ovoce a zelenina
11202 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 1.323519e+09 NaN NaN NaN Novinky/Drogerie a kosmetika
11203 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 1.323520e+09 NaN NaN NaN Novinky/Dítě
11204 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 1.323516e+09 NaN NaN NaN Novinky/Trvanlivé
11205 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 1.323518e+09 NaN NaN NaN Novinky/Nápoje
11206 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 1.323521e+09 NaN NaN NaN Novinky/Domácnost
11207 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 1.323522e+09 NaN NaN NaN Novinky/Zvíře
11208 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 1.323517e+09 NaN NaN NaN Novinky/Mražené
11209 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 1.323513e+09 NaN NaN NaN Novinky/Maso a ryby
11210 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 1.323514e+09 NaN NaN NaN Novinky/Uzeniny a lahůdky
11211 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 1.323511e+09 NaN NaN NaN Novinky/Pekárna a cukrárna
11212 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 1.342440e+05 NaN NaN NaN Novinky

11213 rows × 24 columns

In [11]:
dfRightJoin.shape
Out[11]:
(11213, 24)

Full outer join

Full outer join vrati vsetky zaznamy z tabulky1 (nalavo) aj tabulky2 (napravo). Je to kombinacia vysledkov left joinu a right joinu.

Priklad Prepojenie produktov a kategorii produktov. Full outer join nam vrati vsetky produkty a vsetky kategorie. Ak sa nenajde zhoda v cat_id je zobrazena hodnota null.

SQL ukazka

SELECT *
FROM "dfProducts" as df1
FULL OUTER JOIN "dfCategories" as df2
ON df1.cat_id = df2.cat_id;

In [12]:
dfFullOuterJoin = pd.merge(dfProducts, dfCategories, on='cat_id', how='outer')
dfFullOuterJoin.head()
Out[12]:
badge brand_name categories country_of_origin crc32 description id image image_large ingredients ... price_currency price_for_bottle.amount price_for_bottle.currency price_for_unit_amount price_for_unit_currency cat_id unit weight weight_variations category_path
0 NaN Nivea [{'id': 300109000}, {'id': 300109103}, {'id': ... dle aktuální nabídky 4.119787e+09 Nivea Sprej antiperspirant Silver Protect Dyna... 1296725.0 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Butane\nIosbutane\nPropane\nCyclomethicone\nAl... ... CZK NaN NaN 432,67 CZK 300109110.0 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
1 NaN NaN [{'id': 300109000}, {'id': 300109103}, {'id': ... dle aktuální nabídky 1.164047e+09 NaN 1303675.0 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Alcohol denat.\nIsobutane\nPropane\nButane\nIs... ... CZK NaN NaN 532,67 CZK 300109110.0 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
2 NaN NaN [{'id': 300109000}, {'id': 300109103}, {'id': ... dle aktuální nabídky 3.495741e+09 NaN 1303677.0 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Alcohol denat.\nIsobutane\nPropane\nButane\nPa... ... CZK NaN NaN 532,67 CZK 300109110.0 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
3 NaN NaN [{'id': 300109000}, {'id': 300109103}, {'id': ... dle aktuální nabídky 2.911924e+09 NaN 1303681.0 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Alcohol denat.\nIsobutane\nPropane\nButane\nIs... ... CZK NaN NaN 532,67 CZK 300109110.0 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...
4 NaN NaN [{'id': 300109000}, {'id': 300109103}, {'id': ... dle aktuální nabídky 2.097797e+09 Antiperspirant sprej pro muže.\n\nBezpečnostní... 1307193.0 https://1564005101.rsc.cdn77.org/images/grocer... https://1564005101.rsc.cdn77.org/images/grocer... Butane\nIsobutane\nPropane\nAluminum chlorohyd... ... CZK NaN NaN 466 CZK 300109110.0 l NaN False Drogerie a kosmetika/Deodoranty a tělové sprej...

5 rows × 24 columns

In [13]:
dfFullOuterJoin.shape
Out[13]:
(11257, 24)

Uprava datumu

Mnohokrat z roznych zdrojov mozeme dostat datum v roznych formatoch. Najcastejsie je to unixovy format. Aby sme s datumom vedeli pracovat v citatelnej podobe, je potrebne si ho previest na nami citatelny datum.

Na prevod existuju rozne konvertori https://www.epochconverter.com/

In [14]:
dfRecipes.head()
Out[14]:
code date comments likes caption image
0 BMbZ0FgDQwJ 1478348282 7 4630 CHEESECAKE S AVOKÁDOVÝM KRÉMEM A LESNÍMI PLODY... https://scontent-vie1-1.cdninstagram.com/t51.2...
1 BMZgKXojUDE 1478284501 0 2617 BRUSINKOVÁ GRANOLA S OŘECHY PODLE @cookingwith... https://scontent-vie1-1.cdninstagram.com/t51.2...
2 BMYwzARDJkj 1478259668 0 1882 Bulgur se špenátem 120 g bulguru Hrst baby š... https://scontent-vie1-1.cdninstagram.com/t51.2...
3 BMUkWHbjUW2 1478118923 0 1715 Avomajo od @cukrfree.cz\n\nIngredience\n\n2 zr... https://scontent-vie1-1.cdninstagram.com/t51.2...
4 BMUjn2DDwA- 1478118544 7 2263 Zapečená špagetová dýně alá boloňské špagety p... https://scontent-vie1-1.cdninstagram.com/t51.2...

Ukazka v MySQL

V MySQL napriklad na prevod existuje funkcia ktora sa vola from_unixtime https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_from-unixtime a kod na prevod vyzera nasledovne:


SELECT
from_unixtime(a.date, '%Y %D %M %h:%i:%s')
FROM
"dfRecipes" as a

In [15]:
#import datetime 
from datetime import datetime
In [16]:
def convert_date(date):
    new_date = datetime.fromtimestamp(int(date))
    return new_date
In [17]:
dfRecipes1 = dfRecipes.copy()
dfRecipes1["date"] = dfRecipes1["date"].apply(convert_date)
dfRecipes1.head()
Out[17]:
code date comments likes caption image
0 BMbZ0FgDQwJ 2016-11-05 13:18:02 7 4630 CHEESECAKE S AVOKÁDOVÝM KRÉMEM A LESNÍMI PLODY... https://scontent-vie1-1.cdninstagram.com/t51.2...
1 BMZgKXojUDE 2016-11-04 19:35:01 0 2617 BRUSINKOVÁ GRANOLA S OŘECHY PODLE @cookingwith... https://scontent-vie1-1.cdninstagram.com/t51.2...
2 BMYwzARDJkj 2016-11-04 12:41:08 0 1882 Bulgur se špenátem 120 g bulguru Hrst baby š... https://scontent-vie1-1.cdninstagram.com/t51.2...
3 BMUkWHbjUW2 2016-11-02 21:35:23 0 1715 Avomajo od @cukrfree.cz\n\nIngredience\n\n2 zr... https://scontent-vie1-1.cdninstagram.com/t51.2...
4 BMUjn2DDwA- 2016-11-02 21:29:04 7 2263 Zapečená špagetová dýně alá boloňské špagety p... https://scontent-vie1-1.cdninstagram.com/t51.2...
In [18]:
def convert_date2(date):
    new_date = datetime.fromtimestamp(int(date)).strftime('%d.%m. %Y %H:%M:%S')
    return new_date
In [19]:
dfRecipes2 = dfRecipes.copy()
dfRecipes2["date"] = dfRecipes2["date"].apply(convert_date2)
dfRecipes2.head()
Out[19]:
code date comments likes caption image
0 BMbZ0FgDQwJ 05.11. 2016 13:18:02 7 4630 CHEESECAKE S AVOKÁDOVÝM KRÉMEM A LESNÍMI PLODY... https://scontent-vie1-1.cdninstagram.com/t51.2...
1 BMZgKXojUDE 04.11. 2016 19:35:01 0 2617 BRUSINKOVÁ GRANOLA S OŘECHY PODLE @cookingwith... https://scontent-vie1-1.cdninstagram.com/t51.2...
2 BMYwzARDJkj 04.11. 2016 12:41:08 0 1882 Bulgur se špenátem 120 g bulguru Hrst baby š... https://scontent-vie1-1.cdninstagram.com/t51.2...
3 BMUkWHbjUW2 02.11. 2016 21:35:23 0 1715 Avomajo od @cukrfree.cz\n\nIngredience\n\n2 zr... https://scontent-vie1-1.cdninstagram.com/t51.2...
4 BMUjn2DDwA- 02.11. 2016 21:29:04 7 2263 Zapečená špagetová dýně alá boloňské špagety p... https://scontent-vie1-1.cdninstagram.com/t51.2...
In [20]:
dfRecipes.dtypes
Out[20]:
code        object
date         int64
comments     int64
likes        int64
caption     object
image       object
dtype: object
In [21]:
dfRecipes2.dtypes
Out[21]:
code        object
date        object
comments     int64
likes        int64
caption     object
image       object
dtype: object
In [22]:
dfRecipes1.dtypes
Out[22]:
code                object
date        datetime64[ns]
comments             int64
likes                int64
caption             object
image               object
dtype: object

Práca s XML

XML je dalsim formatom, v akom mozeme s datami pracovat a spracovavat ich. Dneska spracujeme data z portalu obsahujuce informacie o feede novych prispevkov.

Budeme mat feed dat v troch jazykoch = EN, DE, CZ.

  • https://media.skoda-auto.com/de/_layouts/Skoda.SharePoint/Rss.ashx?GeneratorType=B4B39B8C-87C4-415E-ACA2-04E71E3E48D8
  • https://media.skoda-auto.com/cs/_layouts/Skoda.SharePoint/Rss.ashx?GeneratorType=B4B39B8C-87C4-415E-ACA2-04E71E3E48D8
  • https://media.skoda-auto.com/en/_layouts/Skoda.SharePoint/Rss.ashx?GeneratorType=B4B39B8C-87C4-415E-ACA2-04E71E3E48D8
Najprv sa na data pozrieme, aby sme vedeli s cim budeme pracovat a ako vyzeraju

Dobry nastroj na formatovanie xml je napriklad http://www.freeformatter.com/xml-formatter.html alebo http://codebeautify.org/xmlviewer

In [23]:
import xml.etree.ElementTree as ET
from xml import etree
In [24]:
def xmlToDf(xml_data):
    tree = ET.parse(xml_data)
    root = tree.getroot()
    with open("csv/" + xml_data[4:-4] + ".csv", "w", encoding="utf-8") as outfile:
        w = csv.writer(outfile)
        for i, child in enumerate(root):
            record = []
            for subchild in child:
                for j in subchild:
                    record.append(j.text)
                w.writerow(record)
                record = []

    outfile.close()         
In [25]:
import os, glob
listOfFiles = glob.glob("xml/*.xml")
for file in listOfFiles:
    xmlToDf(file)
In [26]:
dfcs = pd.read_csv('csv/cs.csv', names = ["guid", "link", "title", "description", "date"])
dfde = pd.read_csv('csv/de.csv', names = ["guid", "title", "description", "date"])
dfen = pd.read_csv('csv/en.csv', names = ["guid", "link", "title", "description", "date"])
In [27]:
dfcs.head()
Out[27]:
guid link title description date
0 06127fa6-dd8f-4428-a402-27c35140fa14 https://media.skoda-auto.com/cs/_layouts/Skoda... Polopatě: Tohle umí asistenční systémy vozů ŠKODA <p>​Mladá Boleslav, 3. března 2017 – Automobil... Fri, 03 Mar 2017 15:51:00 Z
1 a4451049-57f7-4f5c-999d-5b72de8daa20 https://media.skoda-auto.com/cs/_layouts/Skoda... ŠKODA na autosalonu v Ženevě: Bestseller v cen... <p>​Mladá Boleslav/Ženeva, 3. března 2017 – Na... Fri, 03 Mar 2017 10:00:00 Z
2 2fee134a-0040-4ade-ab78-55cb5d0cc14d https://media.skoda-auto.com/cs/_layouts/Skoda... ŠKODA FABIA 1,0 TSI: Dynamický tříválec s nízk... <p>​Mladá Boleslav, 1. března 2017 – Menší obj... Wed, 01 Mar 2017 08:29:00 Z
3 e41358d1-74f4-4c9f-a866-8ac811d07410 https://media.skoda-auto.com/cs/_layouts/Skoda... ŠKODA v Číně prodala dvoumiliontý vůz <p>Mladá Boleslav/Šanghaj, 27. února 2017 – ŠK... Mon, 27 Feb 2017 09:46:00 Z
4 5e84e25e-6334-4e53-8611-8848f1323dc1 https://media.skoda-auto.com/cs/_layouts/Skoda... ŠKODA je partnerem a její DigiLab také hostite... <p>​Mladá Boleslav, 24. února 2017 – ŠKODA je ... Fri, 24 Feb 2017 10:01:00 Z
In [28]:
dfde.head()
Out[28]:
guid title description date
0 50b2ff14-1224-45f1-a620-eeb0e9b7cc88 Kinderleicht erklärt: Das können die Fahrassis... <p>​Mladá Boleslav, 3. März 2017 – ŠKODA Autom... Fri, 03 Mar 2017 16:03:22 Z
1 7d7f3c6a-c518-4b3e-a53a-3456a6a1c1b1 ŠKODA auf dem Genfer Automobil-Salon: ŠKODA OC... <p>​Mladá Boleslav/Genf, 3. März 2017 – Mit za... Fri, 03 Mar 2017 09:58:43 Z
2 313c57fe-f628-4cc4-8cff-cda488525661 ŠKODA FABIA 1,0 TSI: Dynamischer Dreizylinder ... <p>​Mladá Boleslav, 1. März 2017 – Weniger Hub... Wed, 01 Mar 2017 08:41:45 Z
3 c64d991c-41cf-438e-a550-caac3aebd78a ŠKODA verkauft zweimillionstes Fahrzeug in China <p>​Mladá Boleslav/Shanghai, 27. Februar 2017 ... Mon, 27 Feb 2017 09:54:38 Z
4 7aa25197-8422-47cd-b9d3-04b3d6488428 ŠKODA ist Partner und mit seinem DigiLab auch ... <p>​Mladá Boleslav, 24. Februar 2017 – ŠKODA i... Fri, 24 Feb 2017 10:08:54 Z

Union

Kombinuje vysledky 2 alebo viacerych selectov pod sebou. Dolezite je aby kazdy select mal rovnake stlpce v rovnakom mnozstve a poradi. Union vracia zaznamy bez duplicit

SQL ukazka

SELECT guid, title, description, date
FROM dfcs
UNION
SELECT guid, title, description, date
from dfen

In [29]:
dfUnion = pd.concat([dfcs, dfen], ignore_index=True).drop_duplicates()
dfUnion.head()
Out[29]:
guid link title description date
0 06127fa6-dd8f-4428-a402-27c35140fa14 https://media.skoda-auto.com/cs/_layouts/Skoda... Polopatě: Tohle umí asistenční systémy vozů ŠKODA <p>​Mladá Boleslav, 3. března 2017 – Automobil... Fri, 03 Mar 2017 15:51:00 Z
1 a4451049-57f7-4f5c-999d-5b72de8daa20 https://media.skoda-auto.com/cs/_layouts/Skoda... ŠKODA na autosalonu v Ženevě: Bestseller v cen... <p>​Mladá Boleslav/Ženeva, 3. března 2017 – Na... Fri, 03 Mar 2017 10:00:00 Z
2 2fee134a-0040-4ade-ab78-55cb5d0cc14d https://media.skoda-auto.com/cs/_layouts/Skoda... ŠKODA FABIA 1,0 TSI: Dynamický tříválec s nízk... <p>​Mladá Boleslav, 1. března 2017 – Menší obj... Wed, 01 Mar 2017 08:29:00 Z
3 e41358d1-74f4-4c9f-a866-8ac811d07410 https://media.skoda-auto.com/cs/_layouts/Skoda... ŠKODA v Číně prodala dvoumiliontý vůz <p>Mladá Boleslav/Šanghaj, 27. února 2017 – ŠK... Mon, 27 Feb 2017 09:46:00 Z
4 5e84e25e-6334-4e53-8611-8848f1323dc1 https://media.skoda-auto.com/cs/_layouts/Skoda... ŠKODA je partnerem a její DigiLab také hostite... <p>​Mladá Boleslav, 24. února 2017 – ŠKODA je ... Fri, 24 Feb 2017 10:01:00 Z
In [30]:
dfUnion.shape
Out[30]:
(200, 5)

Union all

Robi to iste co union, s tym ze vysledny datovy set obsahuje aj duplicity

SQL ukazka

SELECT guid, title, description, date
FROM dfcs
UNION ALL
SELECT guid, title, description, date
from dfen

In [31]:
dfUnionAll = pd.concat([dfcs, dfen], ignore_index=True)
dfUnionAll.head()
Out[31]:
guid link title description date
0 06127fa6-dd8f-4428-a402-27c35140fa14 https://media.skoda-auto.com/cs/_layouts/Skoda... Polopatě: Tohle umí asistenční systémy vozů ŠKODA <p>​Mladá Boleslav, 3. března 2017 – Automobil... Fri, 03 Mar 2017 15:51:00 Z
1 a4451049-57f7-4f5c-999d-5b72de8daa20 https://media.skoda-auto.com/cs/_layouts/Skoda... ŠKODA na autosalonu v Ženevě: Bestseller v cen... <p>​Mladá Boleslav/Ženeva, 3. března 2017 – Na... Fri, 03 Mar 2017 10:00:00 Z
2 2fee134a-0040-4ade-ab78-55cb5d0cc14d https://media.skoda-auto.com/cs/_layouts/Skoda... ŠKODA FABIA 1,0 TSI: Dynamický tříválec s nízk... <p>​Mladá Boleslav, 1. března 2017 – Menší obj... Wed, 01 Mar 2017 08:29:00 Z
3 e41358d1-74f4-4c9f-a866-8ac811d07410 https://media.skoda-auto.com/cs/_layouts/Skoda... ŠKODA v Číně prodala dvoumiliontý vůz <p>Mladá Boleslav/Šanghaj, 27. února 2017 – ŠK... Mon, 27 Feb 2017 09:46:00 Z
4 5e84e25e-6334-4e53-8611-8848f1323dc1 https://media.skoda-auto.com/cs/_layouts/Skoda... ŠKODA je partnerem a její DigiLab také hostite... <p>​Mladá Boleslav, 24. února 2017 – ŠKODA je ... Fri, 24 Feb 2017 10:01:00 Z
In [32]:
dfUnionAll.shape
Out[32]:
(200, 5)
In [33]:
dfUnionAll1 = pd.concat([dfcs[["guid", "title"]], dfde[["guid", "title"]], dfen[["guid", "title"]]], ignore_index=True)
dfUnionAll1.head()
Out[33]:
guid title
0 06127fa6-dd8f-4428-a402-27c35140fa14 Polopatě: Tohle umí asistenční systémy vozů ŠKODA
1 a4451049-57f7-4f5c-999d-5b72de8daa20 ŠKODA na autosalonu v Ženevě: Bestseller v cen...
2 2fee134a-0040-4ade-ab78-55cb5d0cc14d ŠKODA FABIA 1,0 TSI: Dynamický tříválec s nízk...
3 e41358d1-74f4-4c9f-a866-8ac811d07410 ŠKODA v Číně prodala dvoumiliontý vůz
4 5e84e25e-6334-4e53-8611-8848f1323dc1 ŠKODA je partnerem a její DigiLab také hostite...
In [34]:
dfUnionAll1.shape
Out[34]:
(300, 2)

Uloha

Pre datove sety dfcs a dfen sprav

      spojenie cez full join
      spojenie cez right join
      spojenie cez left join
      spojenie cez inner join

Ulohy z SQL do Pandasu

1.) Vypis z datasetu dfProducts vsetky produkty, ktore su drahsie v atribute price_amount ako 70 Kc.
2.) Vypis prvych 10 najlacnejsich produktov. Pomocka na zotredenie je mozne pouzit napriklad sort_values()
3.) Vypis vsetky produkty ktore su brandu Nescafé Dolce Gusto a maju zaroven popularity vetsiu ako -11 . Pomocka na viacero podmienok sa pouziva zapis df[(df['size'] >= 5) & (df['total_bill'] > 45)]
4.) Vypis vsetky produkty ktore su z krajiny Dánsko alebo Francie. Pomocka - alebo sa znaci |
5.) Vypis vsetky produkty, ktore su v kategoriach 300109132, 300109052, 300101045 . Pomocka - Na IN sa pouziva df.isin().
6.) Zgrup produkty podla zeme a zrataj pocet produktov pre vybranu zem. Pomocka: GROUP BY a COUNT sa robia df.groupby('sex').size()
7.) Zrataj a zgrup priemernu popularitu vsetkych produktov zo krajiny Česká republika. Pomocka pre priemer tips.groupby('day').agg({'tip': np.mean}). Nezabudni si importovat import numpy as np.
8.) Aktualizuj vsetky hodnoty, v stlpci popularity, kde popularity je zaporne cislo na jeho absolutnu hodnotu. Aktualizacia vsetkych cisel > 2 o jeho mocninu, sa robi napriklad takto tips.loc[tips['tip'] < 2, 'tip'] *= 2

In [35]:
u1 = dfProducts[dfProducts["price_amount"] > "70.0"] #bolo by dobre pretypovat
u2 = dfProducts.sort_values("price_amount").tail(10)
u3 = dfProducts[(dfProducts["brand_name"] == "Nescafé Dolce Gusto") & (dfProducts["popularity"] > -11)]
u4 = dfProducts[(dfProducts["country_of_origin"] == "Dánsko") | (dfProducts["country_of_origin"] == "Francie")]
u5 = dfProducts[dfProducts["cat_id"].isin([300109132, 300109052, 300101045])]
u6 = dfProducts.groupby("country_of_origin").size()
import numpy as np
u7 = dfProducts[dfProducts["country_of_origin"] == "Česká republika"].groupby("country_of_origin").agg({'popularity' : np.mean})
u8 = dfProducts.loc[dfProducts["popularity"] < 0, 'popularity'] = abs(dfProducts["popularity"])
In [36]:
u8
Out[36]:
0          9.0
1          8.0
2          4.0
3         13.0
4         13.0
5          4.0
6          NaN
7         19.0
8         20.0
9        208.0
10        41.0
11        10.0
12        14.0
13       116.0
14       193.0
15        61.0
16        22.0
17        27.0
18       271.0
19       143.0
20       141.0
21        19.0
22       319.0
23       248.0
24        56.0
25        16.0
26       934.0
27        11.0
28        68.0
29        26.0
         ...  
10927      NaN
10928      1.0
10929      4.0
10930      2.0
10931      2.0
10932      1.0
10933      7.0
10934     13.0
10935      1.0
10936      4.0
10937      2.0
10938      7.0
10939      5.0
10940      5.0
10941      1.0
10942      1.0
10943      5.0
10944      2.0
10945      9.0
10946      2.0
10947      3.0
10948      4.0
10949      3.0
10950      NaN
10951      2.0
10952      2.0
10953      NaN
10954      1.0
10955      2.0
10956      NaN
Name: popularity, dtype: float64
In [37]:
import matplotlib.pyplot as plt
from collections import Counter
In [38]:
c = Counter()
for i in dfProducts["country_of_origin"]:
    c[i] += 1
labels = list(l[0] for l in c.most_common(10))
values = list(l[1] for l in c.most_common(10))
plt.figure(figsize=(6, 6))
plt.pie(values, labels=labels, autopct='%1.1f%%', shadow=True,
colors = [
'blue',
'red',
'orange',
'#283891',
'#ec008c',
'#ffcb08',
'#f36f21',
'#8cc63f',
'#16c0e9',
'#939598'
])
plt.show()
In [39]:
c = Counter()
for i in dfUnionAll["date"]:
  c[i] += 1
labels = list(l[0] for l in c.most_common(20))
values = list(l[1] for l in c.most_common(20))
lab = []
val = []
lab2 = []
val2 = []
for i, j in zip(labels, values):
    if j %2 == 0:
        lab.append(i)
        val.append(j)
plt.bar(range(len(lab)), val, color='#d91129')
plt.axes().set_xticks([j - 0.4 for j in range(len(labels))])
plt.axes().set_xticklabels(labels, rotation=90)
plt.show()