Code
from great_tables import GT, md, html
import duckdb
from IPython.display import Markdown
import pandas as pd
= """
query WITH TotaleFinanziamento AS (
SELECT SUM(finanziamento_pnrr_loc) AS Totale
FROM report.parquet
)
SELECT
descrizione_missione AS Missione,
COUNT(DISTINCT CONCAT(cup, '-', codice_locale_progetto)) as "Numero Progetti",
ROUND(SUM(finanziamento_pnrr_loc)) as "Valore PNRR (€)",
ROUND(SUM(finanziamento_pnrr_loc) / (SELECT Totale FROM TotaleFinanziamento) * 100, 2) as "% sul totale"
FROM
report.parquet
GROUP BY ALL
ORDER BY descrizione_missione;
"""
= duckdb.query(query).df()
numero_progetti
="it-IT",rowname_col="Missione")\
GT(numero_progetti,locale="% sul totale", decimals=2)\
.fmt_number(columns="Valore PNRR (€)", decimals=0) .fmt_number(columns
Numero Progetti | Valore PNRR (€) | % sul totale | |
Digitalizzazione, innovazione, competitività e cultura | 530 | 103.916.756 | 7,59 |
Inclusione e coesione | 255 | 32.300.216 | 2,36 |
Rivoluzione verde e transizione ecologica | 40 | 258.665.422 | 18,89 |
Salute | 599 | 974.261.190 | 71,16 |