zopletalova / python-012021

0 stars 0 forks source link

Další úkoly #8

Closed zopletalova closed 3 years ago

zopletalova commented 3 years ago

Ahoj Andy, 😀 @andywaltlova odevzdávám první úkoly ještě za minulý týden. Ten první se jmenuje program30_nove.py - Jirka to očísloval stejně jako týden předtím a mně to s tímhle názvem trochu zapadlo:-) Nějak se mi s tím virtuálním prostředím rozhasilo odevzdávání do Githubu, chtěj se mi odevzdat všechny ty soubory ze včerejška a nemůžu se toho zbavit 😁 Tak s tím jdu bojovat a snad i ty další úkoly stihnu dřív, než dá Jirka nové zadání, přes Velikonoce jsem si udělala prázdniny :-) 🥳 Díky a zatím! Z.

andywaltlova commented 3 years ago

30 ✔️

31 ✔️

32 ✔️


Jinak to virtualni prostredi obsahuje hromadu souboru no, sama jeste nevim jestli to budete odevzdavat i s tou slozkou s virtuanim prostredim nebo bez nej (kdyztak muzes docasne vlozit do .gitignore souboru aby to v gitu neprekazelo). Vic instrukci by melo byt v ukolech z tohoto tydne, budete si v ramci ukolu zakladat v djangu samostatny projekt, ktery budeme postupne behem dalsich ukolu vylepsovat. Pokud si troufnes, klidne ho pak muzes mit v githubu v uplne zvlast repozitari, kam me zase pozves. Uvidis podle instrukci jirky :)

zopletalova commented 3 years ago

Ahoj Andy, díky za komentáře! Ad 31 doplněk - já to z toho Jirkova zadání pochopila, že to nějak jde, ale jsem asi nějaká netalentovaná na hledání v dokumentaci, já to "by" - jak to mám zapsat, prostě nenašla. A hledala jsem dost dlouho :-) Máš nějaký tip na nějakou svou normální, oblíbenou dokumentaci? Nebo komunitu apod.?

Na zbytek se vrhnu dnes, přiznám se, včera jsem strávila "den s robotem", kdy jsem se snažila s minimálními znalostmi RPA udělat robota, který mi stáhne z našeho webu soubor s registrovanými zákazníky na webinář a těm, kterým dosud nerozeslal mailem rezervaci termínu (s přílohou ics) ji s potvrzením registrace rozešle... Jelikož máme fakt primitivní web, který vyexportuje přihlášené v nepřehledném csv, napsala jsem si script v Pythonu, který mi to pak "roztřídí" a připraví jednoduše do excelu pro robota seznam těch, kteří ještě obeslaní nebyli, a robot pak "hopsá" po jednotlivých emailech, buňkách, a rozesílá. Jako ten "úklid csv" a nalezeni již obeslaných přes Python je nakonec největší přínos té "automatizace" :-) Plus samozřejmě že věci kolem robot odkliká, otevře web, zavře, a odešle maily místo mě, to je taky příjemný. Akorát jsem teda strávila dost času zkoumáním, proč mi v rámci toho robotího flow nefunguje Python script. Chybu robot neházel, těmi Python kroky prošel, jen to prostě nic neudělalo. Přitom když jsem totéž spustila v Pycharmu, dělalo to, co to dělat mělo. Původně jsem si myslela, že chyba je v robotovi, tak jsem hledala na webu, ale nakonec mě nějak osvítilo, a zkusila jsem spustit ten py soubor přes příkazový řádek (bo jsem si někde všimla, že ve starých verzích robotů, kde ještě nebyl Python integrovaný, se ke spouštění Pythonu právě příkazový řádek používal.) No a vyplivlo to na mě spoustu hlášek, na jejichž konci bylo něco jako když chceš pracovat s excelem, nainstaluj si přes pip modul xlrd, či co. To jsem nakonec udělala, ale zas mi to napsalo, že když chceš pracovat s xlsx soubory, nestačí ti xlrd, ale musíš přes pip nainstalovat openpyxl :-) To jsem taky udělala, a od té doby to jde spustit i přes řádek a robot taky funguje, jak má 🙏 Po dlouhým výkladu (pardon, ale já nad tím fakt strávila celej včerejšek 😁) krátkej dotaz: Je tím pádem na mým počítači nějak víc interpreterů (či čeho) Pythonu? Protože v Pycharmu modul openpyxl mám, ale přes ten ten robot evidentně script na mém počítači nespouštěl. A nepoužije ho evidentně ani ten příkazový řádek - tj. mám openpyxl nainstalované přes Pycharm, ale stejně jsem to musela ještě nainstalovat přes pip. Říkala jsem si, že pokud by byl ještě prostor pro nějaké téma na konzultacích, tak jestli by bylo možné zahrnout téma lidově nazvané "spustitelnost python souboru" - a co se technicky děje za tím, aby člověk chápal, proč když si člověk "jen tak odněkud" zavolá Python, tak mu to nemusí úplně fungovat - obzvlášť, když jsem zjistila, že zavolat si Python jako mezikrok, třeba právě na zpracování dat, může být docela užitečné! 😁 Díky moc a ještě jednou se omlouvám za ten román 😁 A taky za zpoždění s úkolama 😁 Z.

andywaltlova commented 3 years ago

Ahoj!

Popravde ja jsem se o parametru by docetla primo z jirkova zadani 😅 Az potom jsem to dohledala v dokumentaci. Ale zadnou svoji oblibenou dokumentaci nemam, respektive uz jsem si asi navykla cist ty oficialni dokumentace - coz je zaroven i nejspolehlivejsi zdroj, protoze vsude jinde je riziko ze jsou zastarale informace.

K tomu Python interpretru, nevim jaky mas operacni system (na linuxu a mac OS jsou urcite vzdy python 3 a 2 v zakladu). Na windows bys mela mit jen to co jsi nainstalovala. Pokud si v Pycharmu nainstalovala balicky do virtualniho prostredi, tak jsou nainstalovane jen v nem, tedy nejsou v globalni instalaci pythonu (coz je i ten uvod proc se ty virtualni prostredi delaji, aby nemuselo byt vse globalni, kdyz je to potreba jen v nekterych projektech).

Na windows muzes pres prikazovou radku zjistit jake mas verze nainstalovane prikazem where python (windows tam akorat dava odkaz i do microsoft storu, to je ten preskrtlej): image Python interpret = ten exe soubor, ktery proste umi zpracovavat python kod (.exe soubory jsou specificke pro windows)

Popravde nejsem moc fanouskem toho, ze vse klikame pres pycharm, ja jsem zvykla naopak pouzivat prikazovou radku, protoze mi prijde ze mam vic pod kontrolou to co delam (nevidim dovnitr pycharmu jak to dela on). Kazdopadne pokud v pycharmu nepouzivas virtualni prostredi tak by mel balicky instalovat do vybraneho interpretru, pri pridani balicku je tam vzdy cesta k te python verzi.

Ve zkratce, windows ma neco co se menuje enviroment variables (promenne prostredi), v kontextu pythonu nas zajima konkretne promenna PATH, v teto promenne jsou v podstate ulozene cesty ke slozkam ve kterych jsou ulozene executable soubory (tj napriklad ten python.exe). Proto se i pri instalaci pythonu zaskrtava ze tu cestu chces pridat do PATH -> to je ta magie, ktera zajisti, ze kdyz do prikazove radky napises python, tak vi odkud ma ten python spustit (kde se nachazi ten exe soubor). Proc to rikam? Protoze se muze stat, ze mas nainstalovanych vic verzi pythonu, ale pri napsani python ti to defaultne (diky ten promenne prostredi PATH) bere jeden z tech nainstaovanych interpretru - no a muze se stat ze v pycharmu mas vybrany jiny interpret nez pouziva terminal -> instlaujes balicky do jine verze a ani to nevis :-)

Zkus mrknout jestli by ti pomohlo toto video - je tam vysvetleno i to co jsem se tu snazila popsat :)

Snad jsem pomohla! Andy

zopletalova commented 3 years ago

Ahoj Andy, díky moc, na video kouknu (ještě jsem nestihla), ale že by tam bylo více interpreterů se tedy nakonec nezdá - vypsal mi tohle: C:\Users\Zuzana>where python C:\Users\Zuzana\AppData\Local\Programs\Python\Python37\python.exe C:\Users\Zuzana\AppData\Local\Microsoft\WindowsApps\python.exe

Tak nevím, třeba to objevím časem. Budu si každopádně pamatovat, že pro jistotu si programy pro robota mám radši zkoušet pouštět z příkazového řádku, a případně si prostě potřebné doinstalovat přes pip... Fakt je, že mám na počítači ještě Visual Studio, které mi hlásí problémy s Pythonem, nebo ho tam prostě neumím vzkřísit, no je spousta hezkých věcí, na kterých se dá parádně zaseknout klidně i na několik hodin 😁😁😁

Odevzdala jsem poslední dva úkoly (33a, b a 34). S Teplotou ve městech podruhé (34) jsem trochu bojovala, snažila jsem se napodobit postup z příkladu "výšky mužů a žen", co jsme dělali na lekci, ale moc to nešlo, než mi došlo, že je to asi kvůli indexu. Ve chvíli, kdy jsem dala jako index "Day", tak to zafungovalo. Dělala jsem to teď, tak jsem si to v hlavě ještě úplně neutřídila, ale chápu to správně, že když vezmu část jednoho sloupce z tabulky, kde je jiný sloupec jako index, tak si k němu nemůžu jen tak vedle připlácnout část jiného sloupce sebraného o kus níž, protože pak tam dojde ke konfliktu kvůli tomu indexu? Takže buď index úplně zrušit, nebo nastavit jako index něco, přes co se ty části sloupců můžou vedle sebe poskládat - což v tomhle případě byl den? Možná jsem už při pátku trochu zmatená... 🤣

Díky moc a hezký víkend! 🍹 Z.

andywaltlova commented 3 years ago

33 ✔️

# Priklad podle tveho zpusobu reseni (jen jsem to trosku zkratila a upravila, at se ten kod tak neduplikuje)
teploty = pd.read_csv('temperature.csv',index_col='Day')
cities = []
for city in ['Helsinki','Miami Beach','Tokyo']:
    # Tim ze dam sloupec do listu, automaticky se mi vraci dataframe (misto series, kterou nechci)
    filtered_series = teploty[teploty.City == city][['AvgTemperature']]
    #filtered_series.plot(kind='box',title=city)
    #plt.show()
    cities.append(filtered_series)

spojene = pd.concat(columns, axis=1) # spojim je vedle sebe
print(spojene)
spojene.boxplot(rot=45)
plt.show()
# Pomoci podgrafu
teploty = pd.read_csv('temperature.csv',index_col='Day')
teploty = teploty[teploty.City.isin(['Helsinki','Miami Beach','Tokyo'])][['AvgTemperature','City']]
teploty.boxplot(column='AvgTemperature',by='City')
plt.show()