Datové rámce v Pythonu - pandas, geopandas a polars a geopolars
Programování v GIS 2
2024-04-29
Datové rámce
- Python tento koncept přímo v sobě neobsahuje (na rozdíl třeba od R)
- nejstarší podobná implementace je numpy - což jsou obecně multidimenzionální struktury, ale spíše ve smyslu matic a dalších numerických dat
- pro práci s tabulkovými daty se používá knihovna pandas a chceme-li pracovat s geografickými daty, tak geopandas
- efektivně se jedná o komplikovanou strukturu s mnoha funkcemi a metodami, které umožňují práci s daty
- v poslední době se objevují i nové knihovny, které se snaží být efektivnější a rychlejší, např. polars a geopolars
- obdobně jako v R se pracuje s konceptem sloupců s jednotným datovým typem a řádky s údajem o jednom objektu
Pandas a geopandas
- zavisí na řadě knihoven, poměrně “těžké”
- z historických důvodů zde existuje na řadu problémů několik různých přístupů k řešení stejného problému může být zmatečné a komplikované na pochopení
- chybí zcela ujednocující koncepce
- nesmírně široké možnosti práce s daty a podpora pro mnoho formátů (platí i pro geoformáty)
- práci občas stěžuje koncept indexů a jejich správa
Polars
- modernější iterace na téma datových rámců, značně inspirovaná dplyr
- napsáno primárně pro Rust a následně portováno do mnoha dalších jazyků (včetně Pythonu)
- mnohem rychlejší, bezpečnější a efektivnější než pandas
- podporuje méně formátů než pandas, zejména s ohledem na udržení lehkosti (co se týká závislostí)
- kód je mnohem čitelnější a obvykle jednodušší na pochopení v porovnání s pandas
- user guide , Modern Polars - porovnání s pandas a polars
Geopolars
- geografická extenze polars
- stále označováno jako experimentální
- podopruje přímý import velice úzkého spektra formátů (aby se vyhnulo závislosti na GDAL/OGR), ale umí převést data z geopandas
- workflow, které nemusí dávat smysl z hlediska závislostí atd. ale dává smysl z hlediska rychlosti a efektivity je načítat data přes geopandas a následně je převést do geopolars