Alan / Mar 19 2020
Remix of Getting started with panthera and COVID-19 by AAlan
Getting started with Italian data on COVID-19
(require [panthera.panthera :as pt])(require [libpython-clj.python :refer [call-attr]])17.2s
panthera (Clojure)
(defonce provinces-url "https://raw.githubusercontent.com/pcm-dpc/COVID-19/master/dati-province/dpc-covid19-ita-province.csv")(defonce regions-url "https://raw.githubusercontent.com/pcm-dpc/COVID-19/master/dati-regioni/dpc-covid19-ita-regioni.csv")0.0s
panthera (Clojure)
'user/regions-url
(def provinces (pt/read-csv provinces-url))(def regions (pt/read-csv regions-url))0.3s
panthera (Clojure)
'user/regions
(defn show [obj] (if (pt/series? obj) {:nextjournal/viewer "html" :nextjournal.viewer/value (call-attr (call-attr obj "to_frame") "to_html")} {:nextjournal/viewer "html" :nextjournal.viewer/value (call-attr obj "to_html")}))0.0s
panthera (Clojure)
'user/show
(show (pt/head provinces))0.1s
panthera (Clojure)
(print (pt/names provinces))0.5s
panthera (Clojure)
{"~#'":null}
(def mapper-provinces {:data :date :stato :state :codice_regione :region-code :denominazione_regione :region-name :codice_provincia :province-code :denominazione_provincia :province-name :sigla_provincia :province-abbreviation :lat :lat :long :lon :totale_casi :cases})0.0s
panthera (Clojure)
'user/mapper-provinces
(show (pt/head (pt/rename provinces {:columns mapper-provinces})))0.1s
panthera (Clojure)
(defn renamer [df mapper] (pt/rename df {:columns mapper}))(def provinces-renamed (renamer provinces mapper-provinces))0.0s
panthera (Clojure)
'user/provinces-renamed
(print (pt/unique (pt/subset-cols provinces-renamed :province-name)))0.4s
panthera (Clojure)
(-> (pt/subset-cols provinces-renamed :province-name) pt/n-unique)0.0s
panthera (Clojure)
108
(defn clean-data [df mapper] (as-> (renamer df mapper) d (pt/filter-rows d (pt/ne (pt/subset-cols d :province-name) "In fase di definizione/aggiornamento"))))0.0s
panthera (Clojure)
'user/clean-data
(show (pt/head (clean-data provinces mapper-provinces)))0.1s
panthera (Clojure)
(print (pt/names regions))0.5s
panthera (Clojure)
(def mapper-regions (merge mapper-provinces {:ricoverati_con_sintomi :hospitalized :terapia_intensiva :icu :totale_ospedalizzati :tot-hospitalized :isolamento_domiciliare :quarantined :totale_attualmente_positivi :tot-positives :nuovi_attualmente_positivi :new-positives :dimessi_guariti :recovered :deceduti :dead :tamponi :tests}))0.0s
panthera (Clojure)
'user/mapper-regions
(show (pt/head (renamer regions mapper-regions)))0.1s
panthera (Clojure)
(pt/n-unique (pt/subset-cols regions :denominazione_regione))0.0s
panthera (Clojure)
21
(print (pt/unique (pt/subset-cols regions :denominazione_regione)))0.4s
panthera (Clojure)
(def regions-clean (renamer regions mapper-regions))0.0s
panthera (Clojure)
'user/regions-clean
(-> regions (renamer mapper-regions) (pt/groupby [:date]) pt/sum pt/head show)0.1s
panthera (Clojure)
(def regions-tests (-> (pt/subset-cols regions-clean :date :tests :new-positives) (pt/groupby :date) pt/sum))0.0s
panthera (Clojure)
'user/regions-tests
(print (pt/shape regions-tests))0.6s
panthera (Clojure)
(defn daily-tests [] (-> regions-tests (pt/subset-cols :tests) pt/diff (pt/fill-na (first (pt/values (pt/subset-cols (pt/subset-rows regions-tests 1) :tests))))))0.0s
panthera (Clojure)
'user/daily-tests
(print (pt/shape (daily-tests)))0.5s
panthera (Clojure)
(first (pt/values (pt/subset-cols (pt/subset-rows regions-tests 1) :tests)))(-> (pt/subset-rows regions-tests 1) (pt/subset-cols :tests) pt/values first)0.0s
panthera (Clojure)
4324
(as-> regions-tests r (pt/assign r {:daily-tests (daily-tests)}) (pt/assign r {:new-by-test (pt/div (pt/subset-cols r :new-positives) (pt/subset-cols r :daily-tests))}) (pt/shape r) (print r))0.5s
panthera (Clojure)
(def r (pt/assign regions-tests {:daily-tests (daily-tests)}))0.0s
panthera (Clojure)
'user/r
Shift+Enter to run
panthera (Clojure)