Programozási környezet adatfeldolgozásra, -vizualizációra
Mostanában gyakran kell bizonyos problémák megoldásához különféle adatforrásokból adatokat összeszednem, feldolgoznom, majd valamilyen könnyen értelmezhető formátumban prezentálnom.
Példák:
- Logokból, analitikából, eseménynaplókból kinyert időbélyegek alapján szeretnék készíteni egy grafikont, amin látszik, hogy az érintett komponensek mekkora késleltetést okoznak az idő függvényében.
- A magyar költségvetést szeretném ábrázolni egy treemapen és egy Sankey diagramon, kb. mint itt. Ehhez szeretném az adatokat dinamikusan lekérdezni, a diagramokat évente legfeljebb néhány alkalommal szeretném legenerálni az aktuális költségvetés adataival.
Erre ma Excelt használok, de nem igazán optimális a feladatra. Ennek több oka is van:
- Az adatokat valamennyire fel kell dolgozni a forrás oldalon, hogy egyáltalán importálható legyen Excelbe (tudom, erre használhatnék Power Query-t)
- Az importált adatok további feldolgozása nagyon körülményes (pl. ISO-8601 vagy UNIX timestampek konvertálása Excel időbélyegekre)
- Sokszor egyszerűbb manuálisan megcsinálni bizonyos lépéseket, mint implementálni Excel képletekkel
- Az adatok frissítéséhez gyakorlatilag minden lépést meg kell ismételnem manuálisan
- Az Excel for Mac-nek van néhány furcsa limitációja és bugja a Windowsos verzióhoz képest
Szeretnék egy olyan alternatívát találni ezekre a feladatokra, amivel ezt az egész adatfeldolgozást és -vizualizációt viszonylag kényelmesen meg tudom valósítani. Nagyjából ezek az igényeim:
- Adatokat be tudjam importálni legalább CSV és JSON formátumokban, legalább fájlból és vágólapról, ideális esetben HTTP querykkel is (az autentikációt ehhez meg lehessen oldani)
- Az adatokat programozottan tudjam feldolgozni (pl. szűrni, konvertálni, összerendelni a többi adatsorral), lehetőleg deklaratív programozási nyelven
- Támogasson magasabb rendű adattípusokat (pl. időbélyegek) az azokon értelmezett műveletekkel, standard formátumokról (pl. ISO-8601) lehessen könnyen létrehozni
- Egyszerűen tudjak könnyen értelmezhető kimenetet létrehozni, pl. grafikonokat, táblázatokat
- A kimenet előállításához szükséges lépéseket el tudjam menteni, így később az adatok frissítése (az esetleges manuális importot leszámítva) teljesen automatikusan történjen
Több opció is az eszembe jutott:
- Jupyter Notebook tűnik ránézésre a legalkalmasabbnak, de soha nem használtam, nincs vele tapasztalatom.
- Matlab, illetve annak alternatíváit (Octave, Scilab). Ezek inkább matematikai, mérnöki számítási feladatokra vannak kitalálva, nem tudom ilyen célra mennyire alkalmasak.
- R, Python, vagy más, adatfeldolgozásra (is) használt programozási nyelv használata a megfelelő librarykkel. Egyik említett nyelvet és környezetet sem ismerem annyira, ezért valószínűleg jó pár órát bele kellene fektetnem, mire össze tudnék rakni egy olyan környezetet, amivel már hatékonyan tudnék dolgozni.
Ti mit használnátok erre a feladatra, van tapasztalatotok a fenti opciókkal, esetleg van más is, ami nekem nem jutott eszembe?
- Tovább (Programozási környezet adatfeldolgozásra, -vizualizációra)