…alebo prečo je Streamlit naša nová obľúbená dátová hračka
V rámci projektov (napríklad Business Roentgen) skúšame a vyhodnocujeme nové nástroje a postupy spracovania a prezentácie dát s cieľom zjednodušiť a zrýchliť našu prácu. Vyskúšali sme množstvo proprietárnych aj open-source BI nástrojov. Chceli sme nájsť riešenie, ktoré nám umožní rýchlo a jednoducho prezentovať zistenia z desiatok gigabytov otvorených dát, ktoré sme postupne nahromadili. Okrem klasického reportu sme potrebovali pre našich konzultantov, analytikov a zákazníkov vytvoriť prostredie, ktoré umožní interaktívnu prácu s dátami a grafmi – výber vzorky dát, prepínanie a nastavenie vizualizácií, alebo spúštanie machine-learning modelov. Pri krabicových alebo cloudových ETL a BI nástrojoch sme limitovaní peniazmi, našimi skúsenosťami a malou flexibilitou týchto nástrojov. Preto zber a spracovanie dát robíme v pythone. Python je skvelý jazyk. Dá sa rýchlo naučiť a ponúka množstvo knižníc na prácu s dátami a všetko čo potrebujeme.
Problém väčšinou býva so zdieľaním výsledkov s kolegami, ktorí nemajú skúsenosti so spúšťaním a konfigurovaním skriptov. Museli by pracovať s nejakým exportom dát alebo by si nechali vytvoriť prototyp webových aplikácií (dashboardov), ktoré vo frameworkoch ako Plotly Dash alebo Flask trvajú dlhšie alebo ich možnosti zdieľania sú limitované (PowerBI Desktop vo Free verzii).
Náš život je jednoduchší odkedy sme natrafili na Streamlit. Podľa ich stránky je Streamlit open-source aplikačným rámcom pre tímy strojového učenia a dátovej vedy. Streamlit umožňuje jednoduchý a rýchly spôsob vytvárania webových aplikácií. Poskytuje plne programovateľné prostredie, jednoduché a ľahko čitateľné. Aplikácie je možné spustiť a zdieľať lokálne, alebo publikovať prostredníctvom ich cloud platformy.
Nižšie uvádzame krátku ukážku toho, ako pomocou Streamlit pripraviť interaktívny webový prehliadač otvorených dát ITMS2014+ na pár riadkoch kódu.
Streamlit je možné nainštalovať z PyPI pomocou nasledujúceho príkazu:
pip install streamlit
Následne vytvoríme nový Python súbor s názvom itms_app.py. Otvoríme ho pomocou IDE alebo textového editora. Importujeme streamlit, pandas a pyplot, pre následnú prácu s dátami.
import streamlit as st
import pandas as pd
import matplotlib.pyplot as plt
Cez cmd spustíme streamlit aplikáciu. V prehliadači sa otvorí nová karta. Zatiaľ bude prázdna.
streamlit run first_app.py
Do nášho súboru pridáme nový riadok s názvom aplikácie
st.title("ITMS prehliadač")
V otvorenom okne sa objaví názov a tlačidlo na opakovanie behu aplikácie. Môžeme stlačiť „rerun“ pre jedno opakovanie alebo „always rerun“ pre opakovanie pri každej zmene skriptu. Takto vieme v reálnom čase sledovať zmeny skriptu v okne prehliadača. No nie je to super?
V ďalšom kroku stiahneme zoznam podaných eurofondových žiadostí z otvorených dát systému ITMS2014+. Jednotlivé API endpointy sú zdokumentované tu https://opendata.itms2014.sk/swagger/?url=/v2/swagger.json. K funkcii pripojíme dekorátor @st.cache, ktorý nám zabezpečí, že súbor sa stiahne iba pri prvom spustení programu a uloží sa v pamäti. To výrazne zrýchli chod programu.
@st.cache
def zoznam_projektov():
df = pd.read_json("https://opendata.itms2014.sk/v2/zonfp/prijate")
return df
Následne vykreslíme tabuľku, v ktorej bude zoznam prijatých projektov
df = zoznam_projektov()
st.dataframe(df)
Pod tabuľku môžeme pridať napríklad aj nejaké štatistické ukazovatele
col1, col2 = st.columns(2)
with col1:
st.metric(label="Celkový počet projektov", value=len(zoznam_projektov()))
with col2:
dotacie_mean = df["sumaZiadanaNFP"].mean().round(2)
st.metric(label="Priemerná výška dotácie na 1 projekt", value=f"€{dotacie_mean}")
alebo si jednoducho zobraziť distribúciu dotácií:
plot = df.sumaZiadanaNFP.plot(kind='hist', bins=20)
st.write(plot)
Výsledok vyzerá takto:
Informácie o pozícii nájdete na webe Profesia.sk
Bavia vás dáta?
Pošlite nám životopis a budeme vás kontaktovať!
Podobné články
Valida.sk: Finančné problémy firmy 123 kuriér a ich príčiny
Na svojom blogu publikoval portál valida.sk analýzu o finančných problémoch firmy 123 kuriér a ich…
Valida.sk: Ako sa vyhnúť zlej investícii typu Axe Capital
Na svojom blogu publikoval portál Valida.sk 5 odporúčaní, ako sa vyhnúť zlej investícii typu Axe…
Aké bezplatné služby dnes ponúka portál Valida.sk?
V lete minulého roku sme spustili pilotnú verziu portálu Valida.sk. Aké služby v súčasnosti portál prináša?
Porovnanie TOP-5 slovenských cestoviek v porovnávači Valida
Na svojom blogu zverejnila Valida.sk ukážku, ako funguje jej Porovnávač firiem. Príklad je postavený na porovnaní piatich najväčších slovenských cestovných kancelárií.
Digitalizujeme procesy vo výrobných podnikoch
Pre štyri slovenské výrobné firmy sme realizovali detailnú analýzu vybraných procesov s cieľom navrhnúť spôsoby ich automatizácie a digitalizácie.
Valida – automatické business poradenstvo pre firmy
Spustili sme pilotnú verziu automatizovaného podnikateľského poradcu Valida. Naším cieľom je priniesť informácie, ktoré pomôžu zlepšiť konkurencieschopnosť vašej firmy a rýchlejšie overiť vašich partnerov a zákazníkov.