Published
Edited
Oct 4, 2022
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
scrutini = d3.csv("https://raw.githubusercontent.com/ondata/elezioni-politiche-2022/main/affluenza-risultati/dati/risultati/camera-italia-comune.csv")
Insert cell
Insert cell
Insert cell
scrutini_eligendo = d3.dsv(";","https://raw.githubusercontent.com/gjrichter/data/master/ElezioniPolitiche/2022/Eligendo/Politiche2022_Scrutini_Camera_Italia.csv")
Insert cell
_scrutini_eligendo = Data.import({"source":scrutini_eligendo,"type":"json"})
Insert cell
Inputs.Table(_scrutini_eligendo.json())
Insert cell
_candidati = {
var cogn_index = _scrutini_eligendo.column("COGNOME").index;
var nome_index = _scrutini_eligendo.column("NOME").index;
var com_index = _scrutini_eligendo.column("COMUNE").index;
_scrutini_eligendo.addColumn({destination:"NOME_COGNOME_COMUNE"},row => {
return (row[nome_index] + row[cogn_index] + row[com_index]);
});
var lista_index = _scrutini_eligendo.column("LISTA").index;
_scrutini_eligendo.addColumn({destination:'coalizione'},
function(row){
var coalizione = row[lista_index];
if (coalizione.match(/GIORGIA MELONI/)){ coalizione = "CDX";}
if (coalizione.match(/LEGA PER SALVINI PREMIER/)){ coalizione = "CDX";}
if (coalizione.match(/FORZA ITALIA/)){ coalizione = "CDX";}
if (coalizione.match(/NOI MODERATI/)){ coalizione = "CDX";}
if (coalizione.match(/PARTITO DEMOCRATICO/)){ coalizione = "CSN";}
if (coalizione.match(/ALLEANZA VERDI E SINISTRA/)){ coalizione = "CSN";}
if (coalizione.match(/EUROPA/)){ coalizione = "CSN";}
if (coalizione.match(/IMPEGNO CIVICO/)){ coalizione = "CSN";}
return (coalizione);
});
_scrutini_eligendo.condense({lead:['NOME_COGNOME_COMUNE'],keep:['VOTANTI TOTALI','ELETTORI TOTALI','VOTI CANDIDATO','VOTI SOLO CANDIDATO','SCHEDE BIANCHE','SCHEDE CONTESTATE','SCHEDE NULLE']});
return _scrutini_eligendo;
}
Insert cell
Inputs.Table(_candidati.json())
Insert cell
Insert cell
comuniViminaleISTAT = d3.csv("https://raw.githubusercontent.com/ondata/elezioni-politiche-2022/main/affluenza-risultati/dati/risultati/camera-italia-comune_anagrafica.csv")
Insert cell
comuniViminaleISTAT_ = Data.import({"source":comuniViminaleISTAT,"type":"json"})
Insert cell
Inputs.Table(comuniViminaleISTAT_.json())
Insert cell
Insert cell
Insert cell
descomA = comuniViminaleISTAT_.lookupArray({key:"codice",value:"desc_com"});

Insert cell
procomA = comuniViminaleISTAT_.lookupArray({key:"codice",value:"CODICE ISTAT"});

Insert cell
descom_procomA = comuniViminaleISTAT_.lookupArray({key:"desc_com",value:"CODICE ISTAT"});
Insert cell
Insert cell
Insert cell
scrutini_1 = scrutini_.addColumn({source:'codice',destination:'desc_com'},
function(codice){
return (descomA[codice]);
});
Insert cell
Insert cell
scrutini_2 = scrutini_1.addColumn({source:'codice',destination:'pro_com'},
function(codice){
return (procomA[codice]);
});
Insert cell
Insert cell
Inputs.Table(scrutini_2.json())
Insert cell
Insert cell
Insert cell
scrutini_3 = scrutini_2.addColumn({destination:'coalizione'},
function(row){
var coalizione = row[11];
if (row[11].match(/GIORGIA MELONI/)){ coalizione = "CDX";}
if (row[11].match(/LEGA PER SALVINI PREMIER/)){ coalizione = "CDX";}
if (row[11].match(/FORZA ITALIA/)){ coalizione = "CDX";}
if (row[11].match(/NOI MODERATI/)){ coalizione = "CDX";}
if (row[11].match(/PARTITO DEMOCRATICO/)){ coalizione = "CSN";}
if (row[11].match(/ALLEANZA VERDI E SINISTRA/)){ coalizione = "CSN";}
if (row[11].match(/EUROPA/)){ coalizione = "CSN";}
if (row[11].match(/IMPEGNO CIVICO/)){ coalizione = "CSN";}
return (coalizione);
});
Insert cell
Insert cell
scrutini_4 = {
var cogn_index = scrutini_3.column("cogn").index;
var nome_index = scrutini_3.column("nome").index;
var com_index = scrutini_3.column("desc_com").index;
scrutini_3.addColumn({destination:"NOME_COGNOME_COMUNE"},row => {
return (row[nome_index] + row[cogn_index] + row[com_index]);
});
scrutini_3.condense({lead:['NOME_COGNOME_COMUNE'],keep:['voti_solo_can']});
var voti_index = scrutini_3.column("voti").index;
var voti_solo_can_index = scrutini_3.column("voti_solo_can").index;
scrutini_3.addColumn({destination:"voti_can"},row=>{
return(Number(row[voti_index]) + Number(row[voti_solo_can_index]));
});
return scrutini_3;
}
Insert cell
Insert cell
Inputs.Table(scrutini_4.json())
Insert cell
Insert cell
Insert cell
pivot = scrutini_3.pivot({
lead: 'codice',
keep: ['pro_com','desc_com'],
cols: 'desc_lis',
value: "voti"
});
Insert cell
Inputs.Table(pivot.json())

Insert cell
Insert cell
pivot_coalizioni = scrutini_4.pivot({
lead: 'codice',
keep: ['pro_com','desc_com'],
cols: 'coalizione',
value: "voti_can"
});
Insert cell
Inputs.Table(pivot_coalizioni.json())
Insert cell
Insert cell
pivot_candidati = _candidati.pivot({
lead: 'COMUNE',
cols: 'coalizione',
value: "VOTI CANDIDATO"
});
Insert cell
Inputs.Table(pivot_candidati.json())
Insert cell
Insert cell
pivot_final = pivot.condense({lead:'pro_com',keep:['codice','pro_com']});
Insert cell
Inputs.Table(pivot_final.json())
Insert cell
pivot_coalizioni_final = pivot_coalizioni.condense({lead:'pro_com',keep:['codice','pro_com']});
Insert cell
Inputs.Table(pivot_coalizioni_final.json())
Insert cell
pivot_candidati_final = pivot_candidati.addColumn({source:'COMUNE',destination:'pro_com'}, value =>{
return (descom_procomA[value]);
});
Insert cell
Inputs.Table(pivot_candidati_final.json())
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more