Covid-19 grafici e statistiche 2 sorgente python


Aggiornati con cadenza almeno giornaliera della Jhons Hopkins University.

https://github.com/CSSEGISandData/COVID-19/tree/master/csse_covid_19_data


Sorgente Python che permette di elaborare i dati grezzi della Jhons Hopkins University.

La pagina agiornata con le elaborazioni è a questo link


Il sorgente è facilmente modificabile e utilizzabile anche come modulo con i comandi

carica()

elabora(nomenazione)


n = 4000  # numero massimo delle righe processabili
abra = [[0] * 15 for i in range(n)]
cadabra = [[0] * 15 for i in range(n)]
class color:
   PURPLE = '\033[95m'
   CYAN = '\033[96m'
   DARKCYAN = '\033[36m'
   BLUE = '\033[94m'
   GREEN = '\033[92m'
   YELLOW = '\033[93m'
   RED = '\033[91m'
   BOLD = '\033[1m'
   UNDERLINE = '\033[4m'
   END = '\033[0m'
def carica():
    nomeultimofile = input ("inserisci il nome del file più recente: ")
    test=".csv" in nomeultimofile
    if test == False:
        nomeultimofile=nomeultimofile+".csv"
        print ("convertito in "+nomeultimofile+" perchè mancava l'estensione")
    nomecomofile = input ("inserisci il nome del file di comparazione: ")
    test=".csv" in nomecomofile
    if test == False:
        nomecomofile=nomecomofile+".csv"
        print("convertito in " + nomecomofile + " perchè mancava l'estensione")
    filedaaprire = open(nomeultimofile,"r")
    filedaaprire1 = open(nomecomofile,"r")
    appoggio=""
    li=-1
    if filedaaprire.readable():
        for lines in filedaaprire:
            le=-1
            li=li+1
            z= lines
            z=z.replace("\n",",")
            for letter in z:
                if letter == ",":
                    le = le + 1
                    li=li
                    abra[li][le]=appoggio
                    appoggio=""
                if letter!= ",":
                    appoggio=appoggio+letter
    filedaaprire.close()
    print("file più recente: "+nomeultimofile+" acquisite "+str(li)+" linee")
    appoggio=""
    li=-1
    if filedaaprire1.readable():
        for lines in filedaaprire1:
            le=-1
            li=li+1
            z= lines
            z=z.replace("\n",",")
            for letter in z:
                if letter == ",":
                    le = le + 1
                    li=li
                    cadabra[li][le]=appoggio
                    appoggio=""
                if letter!= ",":
                    appoggio=appoggio+letter
    filedaaprire1.close()
    print("file più recente: "+nomecomofile+" acquisite "+str(li)+" linee")
def analizza(paese):
    a = 0
    b = 0
    confermati = 0
    morti = 0
    ricoverati = 0
    attivi = 0
    while a < n:
        if abra[a][3] == paese:
            confermati = confermati + int(abra[a][7])
            morti = morti + int(abra[a][8])
            ricoverati = ricoverati + int(abra[a][9])
            attivi = attivi + int(abra[a][10])
        a = a + 1
    confermati1 = 0
    morti1 = 0
    ricoverati1 = 0
    attivi1 = 0
    while b < n:
        if cadabra[b][3] == paese:            confermati1 = confermati1 + int(cadabra[b][7])
            morti1 = morti1 + int(cadabra[b][8])
            ricoverati1 = ricoverati1 + int(cadabra[b][9])
            attivi1 = attivi1 + int(cadabra[b][10])
        b = b + 1
    print("-------------------------------------")
    print(color.BOLD+color.BLUE+paese+color.END)
    print("Confermati: " + str(confermati) + "\n   ... su periodo precedente: " + str(confermati - confermati1) + " ")
    print("Morti   : " + str(morti) + "\n   ... su periodo precedente: " + str(morti - morti1) + " ")
    print("Ricoverati: " + str(ricoverati) + "\n   ... su periodo precedente: " + str(ricoverati - ricoverati1) + " ")
    print("Attivi  : " + str(attivi) + "\n   ... su periodo precedente: " + str(attivi - attivi1) + " ")
    if float(confermati) > 0:
        m = float(morti) / float(confermati)
        m = int(m * 10000) / 100
    if float(confermati1) > 0:
        m1 = float(morti1) / float(confermati1)
        m1 = int(m1 * 10000) / 100
    if float(confermati-confermati1) > 0:
        m2 = float(morti-morti1) / float(confermati-confermati1)
        m2 = int(m2 * 10000) / 100
        print("\nDecessi su Confermati            : " + str(m) + "%\nDecessi su Confermati precedente : "+ str(m1) +"%\nDecessi su Confermati giornalieri: "+ str(m2) +"%")
    print("-------------------------------------")
carica()
while 1==1:
    print(" ")
    print(" ")
    print("Comandi disponibili:")
    print("Italia, Spagna, USA, Francia, UK, Germania, Cina   \n Europa \n Tutto")
    print(" ")
    comando = input ("inserisci comando: ")
    print(" ")
    if comando.lower() == "italia" :
        analizza("Italy")
    if comando.lower()  == "spagna":
       analizza("Spain")
    if comando.lower()  == "francia":
       analizza("France")
    if comando.lower()  == "usa":
       analizza("US")
    if comando.lower()  == "cina":
       analizza("China")
    if comando.lower()  == "germania":
       analizza("Germany")
    if comando.lower()  == "uk":
       analizza("United Kingdom")
    if comando.lower()  == "europa":
       analizza("Spain")
       analizza("Italy")
       analizza("Germany")
       analizza("France")
       analizza("United Kingdom")
    if comando.lower()  == "tutto":
        analizza("US")
        analizza("Spain")
        analizza("Italy")
        analizza("Germany")
        analizza("France")
        analizza("United Kingdom")
        analizza("China")