import pandas as pd
import numpy as np
import math
import matplotlib.pyplot as plt
pd.options.mode.chained_assignment = None
Obtendo o Banco de Dados da COVID-19 no Brasil com informações de número de casos e mortos em cada cidade.
from google.colab import drive
drive.mount('/content/drive')
path = "/content/drive/MyDrive/Colab Notebooks"
Mounted at /content/drive
dadosCovid = pd.read_csv(path+"/caso_full.csv.gz",header=None,squeeze=True,low_memory=False)
#Origem dos dados: https://brasil.io/dataset/covid19/files/
label = dadosCovid.loc[0,:]
#Subset das informações mais relevantes sobre a vacinação.
dadosVacinacao = pd.read_csv(path+"/dadosVacinacao.zip",index_col=False,header=None,squeeze=True,low_memory=False)
#Fonte: https://coronavirus.saude.mg.gov.br/dadosabertos - Sistemas Vacinação
display(dadosCovid.head(6))
display(dadosVacinacao.head(2))
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | city | city_ibge_code | date | epidemiological_week | estimated_population | estimated_population_2019 | is_last | is_repeated | last_available_confirmed | last_available_confirmed_per_100k_inhabitants | last_available_date | last_available_death_rate | last_available_deaths | order_for_place | place_type | state | new_confirmed | new_deaths |
| 1 | Rio Branco | 1200401 | 2020-03-17 | 202012 | 413418 | 407319 | False | False | 3 | 0.72566 | 2020-03-17 | 0.0000 | 0 | 1 | city | AC | 3 | 0 |
| 2 | NaN | 12 | 2020-03-17 | 202012 | 894470 | 881935 | False | False | 3 | 0.33539 | 2020-03-17 | 0.0000 | 0 | 1 | state | AC | 3 | 0 |
| 3 | Rio Branco | 1200401 | 2020-03-18 | 202012 | 413418 | 407319 | False | False | 3 | 0.72566 | 2020-03-18 | 0.0000 | 0 | 2 | city | AC | 0 | 0 |
| 4 | NaN | 12 | 2020-03-18 | 202012 | 894470 | 881935 | False | False | 3 | 0.33539 | 2020-03-18 | 0.0000 | 0 | 2 | state | AC | 0 | 0 |
| 5 | Rio Branco | 1200401 | 2020-03-19 | 202012 | 413418 | 407319 | False | False | 4 | 0.96754 | 2020-03-19 | 0.0000 | 0 | 3 | city | AC | 1 | 0 |
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
|---|---|---|---|---|---|---|---|---|
| 0 | ID | faixa_etaria | sexo | municipio_res | macro | vacina_nome | data_aplicacao | dose |
| 1 | 1 | 60 a 69 anos | MASCULINO | BELO HORIZONTE | CENTRO | CORONAVAC | 2021-05-20 | 2ª Dose |
dadosMG = dadosCovid[dadosCovid[15] == "MG"]
display(dadosMG)
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 627858 | Divinópolis | 3122306 | 2020-03-08 | 202011 | 240408 | 238230 | False | False | 1 | 0.41596 | 2020-03-08 | 0.0000 | 0 | 1 | city | MG | 1 | 0 |
| 627859 | NaN | 31 | 2020-03-08 | 202011 | 21292666 | 21168791 | False | False | 1 | 0.00470 | 2020-03-08 | 0.0000 | 0 | 1 | state | MG | 1 | 0 |
| 627860 | Divinópolis | 3122306 | 2020-03-09 | 202011 | 240408 | 238230 | False | False | 1 | 0.41596 | 2020-03-09 | 0.0000 | 0 | 2 | city | MG | 0 | 0 |
| 627861 | NaN | 31 | 2020-03-09 | 202011 | 21292666 | 21168791 | False | False | 1 | 0.00470 | 2020-03-09 | 0.0000 | 0 | 2 | state | MG | 0 | 0 |
| 627862 | Divinópolis | 3122306 | 2020-03-10 | 202011 | 240408 | 238230 | False | False | 1 | 0.41596 | 2020-03-10 | 0.0000 | 0 | 3 | city | MG | 0 | 0 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 1005150 | Água Boa | 3100609 | 2021-08-08 | 202132 | 13523 | 13735 | False | True | 511 | 3778.74732 | 2021-06-18 | 0.0137 | 7 | 408 | city | MG | 0 | 0 |
| 1005151 | Água Comprida | 3100708 | 2021-08-08 | 202132 | 1992 | 1999 | False | True | 169 | 8483.93574 | 2021-06-18 | 0.0473 | 8 | 436 | city | MG | 0 | 0 |
| 1005152 | Águas Formosas | 3100906 | 2021-08-08 | 202132 | 19247 | 19207 | False | True | 899 | 4670.85780 | 2021-06-18 | 0.0345 | 31 | 431 | city | MG | 0 | 0 |
| 1005153 | Águas Vermelhas | 3101003 | 2021-08-08 | 202132 | 13599 | 13539 | False | True | 402 | 2956.09971 | 2021-06-18 | 0.0174 | 7 | 446 | city | MG | 0 | 0 |
| 1005154 | NaN | 31 | 2021-08-08 | 202132 | 21292666 | 21168791 | True | False | 1997875 | 9382.92556 | 2021-08-08 | 0.0257 | 51317 | 519 | state | MG | 2189 | 101 |
377297 rows × 18 columns
# dadosCovid_1 = dadosCovid_1.dropna()
# print(len(dadosCovid_1[dadosCovid_1[14] == 'state'])) #dropar os 'state' e padronificar os NaN
# teste = dadosCovid_1.isnull()
# teste2 = teste.any(axis=1)
# teste3 = dadosCovid_1[teste2]
dadosMG = dadosMG.drop(dadosMG[dadosMG[14] == 'state'].index)
dadosMG = dadosMG.dropna()
dadosMG
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 627858 | Divinópolis | 3122306 | 2020-03-08 | 202011 | 240408 | 238230 | False | False | 1 | 0.41596 | 2020-03-08 | 0.0000 | 0 | 1 | city | MG | 1 | 0 |
| 627860 | Divinópolis | 3122306 | 2020-03-09 | 202011 | 240408 | 238230 | False | False | 1 | 0.41596 | 2020-03-09 | 0.0000 | 0 | 2 | city | MG | 0 | 0 |
| 627862 | Divinópolis | 3122306 | 2020-03-10 | 202011 | 240408 | 238230 | False | False | 1 | 0.41596 | 2020-03-10 | 0.0000 | 0 | 3 | city | MG | 0 | 0 |
| 627864 | Divinópolis | 3122306 | 2020-03-11 | 202011 | 240408 | 238230 | False | False | 1 | 0.41596 | 2020-03-11 | 0.0000 | 0 | 4 | city | MG | 0 | 0 |
| 627866 | Divinópolis | 3122306 | 2020-03-12 | 202011 | 240408 | 238230 | False | False | 1 | 0.41596 | 2020-03-12 | 0.0000 | 0 | 5 | city | MG | 0 | 0 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 1005149 | Wenceslau Braz | 3172202 | 2021-08-08 | 202132 | 2548 | 2552 | False | True | 175 | 6868.13187 | 2021-06-18 | 0.0229 | 4 | 460 | city | MG | 0 | 0 |
| 1005150 | Água Boa | 3100609 | 2021-08-08 | 202132 | 13523 | 13735 | False | True | 511 | 3778.74732 | 2021-06-18 | 0.0137 | 7 | 408 | city | MG | 0 | 0 |
| 1005151 | Água Comprida | 3100708 | 2021-08-08 | 202132 | 1992 | 1999 | False | True | 169 | 8483.93574 | 2021-06-18 | 0.0473 | 8 | 436 | city | MG | 0 | 0 |
| 1005152 | Águas Formosas | 3100906 | 2021-08-08 | 202132 | 19247 | 19207 | False | True | 899 | 4670.85780 | 2021-06-18 | 0.0345 | 31 | 431 | city | MG | 0 | 0 |
| 1005153 | Águas Vermelhas | 3101003 | 2021-08-08 | 202132 | 13599 | 13539 | False | True | 402 | 2956.09971 | 2021-06-18 | 0.0174 | 7 | 446 | city | MG | 0 | 0 |
370801 rows × 18 columns
print(f"Quantidade de NA na base de casos do covid: {dadosMG.isnull().sum().sum()}")
for i in range(18):
print(f"Quantidade de NA na base de casos do covid {i}: {dadosMG[i].isnull().sum().sum()}")
Quantidade de NA na base de casos do covid: 0 Quantidade de NA na base de casos do covid 0: 0 Quantidade de NA na base de casos do covid 1: 0 Quantidade de NA na base de casos do covid 2: 0 Quantidade de NA na base de casos do covid 3: 0 Quantidade de NA na base de casos do covid 4: 0 Quantidade de NA na base de casos do covid 5: 0 Quantidade de NA na base de casos do covid 6: 0 Quantidade de NA na base de casos do covid 7: 0 Quantidade de NA na base de casos do covid 8: 0 Quantidade de NA na base de casos do covid 9: 0 Quantidade de NA na base de casos do covid 10: 0 Quantidade de NA na base de casos do covid 11: 0 Quantidade de NA na base de casos do covid 12: 0 Quantidade de NA na base de casos do covid 13: 0 Quantidade de NA na base de casos do covid 14: 0 Quantidade de NA na base de casos do covid 15: 0 Quantidade de NA na base de casos do covid 16: 0 Quantidade de NA na base de casos do covid 17: 0
for i in range(18):
dadosMG[i] = dadosMG[i].str.strip()
identificacoes = ['NÃO ESPECIFICADO', 'NÃO IDENTIFICADO', 'NÃO LOCALIZADO']
# dadosVacinacao[1] = dadosVacinacao[1].fillna('NÃO ESPECIFICADO')
# dadosVacinacao[dadosVacinacao[1] == 'NÃO ESPECIFICADO']
# dadosVacinacao[2] = dadosVacinacao[2].fillna('NÃO IDENTIFICADO')
# dadosVacinacao[dadosVacinacao[2] == 'NÃO IDENTIFICADO']
# dadosVacinacao[3] = dadosVacinacao[3].fillna('NÃO LOCALIZADO')
# dadosVacinacao[dadosVacinacao[3] == 'NÃO LOCALIZADO']
for i in range(3):
dadosVacinacao[i+1] = dadosVacinacao[i+1].fillna(identificacoes[i])
dadosVacinacao[dadosVacinacao[3] == 'NÃO LOCALIZADO']
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
|---|---|---|---|---|---|---|---|---|
| 545 | 545 | 70 a 79 anos | MASCULINO | NÃO LOCALIZADO | VALE DO ACO | CORONAVAC | 2021-04-05 | 2ª Dose |
| 592 | 592 | 40 a 49 anos | MASCULINO | NÃO LOCALIZADO | SUDESTE | ASTRAZENECA | 2021-06-16 | 1ª Dose |
| 1352 | 1352 | 50 a 59 anos | MASCULINO | NÃO LOCALIZADO | NORTE | ASTRAZENECA | 2021-05-28 | 1ª Dose |
| 1435 | 1435 | 60 a 69 anos | FEMININO | NÃO LOCALIZADO | CENTRO SUL | ASTRAZENECA | 2021-07-01 | 2ª Dose |
| 2266 | 2266 | 10 a 19 anos | FEMININO | NÃO LOCALIZADO | CENTRO | ASTRAZENECA | 2021-07-28 | 1ª Dose |
| ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 13247741 | 13247741 | 60 a 69 anos | MASCULINO | NÃO LOCALIZADO | CENTRO | ASTRAZENECA | 2021-04-14 | 1ª Dose |
| 13247797 | 13247797 | 70 a 79 anos | MASCULINO | NÃO LOCALIZADO | NORTE | CORONAVAC | 2021-03-31 | 1ª Dose |
| 13247854 | 13247854 | 60 a 69 anos | FEMININO | NÃO LOCALIZADO | SUDESTE | ASTRAZENECA | 2021-06-10 | 1ª Dose |
| 13248224 | 13248224 | 60 a 69 anos | MASCULINO | NÃO LOCALIZADO | NORTE | CORONAVAC | 2021-04-16 | 1ª Dose |
| 13248312 | 13248312 | 40 a 49 anos | MASCULINO | NÃO LOCALIZADO | SUL | ASTRAZENECA | 2021-05-29 | 1ª Dose |
57513 rows × 8 columns
print(f"Quantidade de NA na vacinação: {dadosVacinacao.isna().sum().sum()}")
for i in range(8):
print(f"Quantidade de NA na vacinação coluna {i}: {dadosVacinacao[i].isnull().sum().sum()}")
Quantidade de NA na vacinação: 0 Quantidade de NA na vacinação coluna 0: 0 Quantidade de NA na vacinação coluna 1: 0 Quantidade de NA na vacinação coluna 2: 0 Quantidade de NA na vacinação coluna 3: 0 Quantidade de NA na vacinação coluna 4: 0 Quantidade de NA na vacinação coluna 5: 0 Quantidade de NA na vacinação coluna 6: 0 Quantidade de NA na vacinação coluna 7: 0
"""
Como nós iremos fazer a soma de casos e mortes, esses valores precisam ser numéricos.
"""
dadosMG[16] = pd.to_numeric(dadosMG[16])
dadosMG[17] = pd.to_numeric(dadosMG[17])
dadosMG[4] = pd.to_numeric(dadosMG[4])
display(dadosMG)
#Fonte: https://www.ti-enxame.com/pt/python/alterar-tipo-de-dados-de-colunas-em-pandas/1072113742/
dadosMG[0] = dadosMG[0].str.upper()
dadosMG[0] = dadosMG[0].str.normalize('NFKD').str.encode('ascii', errors='ignore').str.decode('utf-8')
dadosMG_1 = dadosMG.copy()
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 627858 | Divinópolis | 3122306 | 2020-03-08 | 202011 | 240408 | 238230 | False | False | 1 | 0.41596 | 2020-03-08 | 0.0000 | 0 | 1 | city | MG | 1 | 0 |
| 627860 | Divinópolis | 3122306 | 2020-03-09 | 202011 | 240408 | 238230 | False | False | 1 | 0.41596 | 2020-03-09 | 0.0000 | 0 | 2 | city | MG | 0 | 0 |
| 627862 | Divinópolis | 3122306 | 2020-03-10 | 202011 | 240408 | 238230 | False | False | 1 | 0.41596 | 2020-03-10 | 0.0000 | 0 | 3 | city | MG | 0 | 0 |
| 627864 | Divinópolis | 3122306 | 2020-03-11 | 202011 | 240408 | 238230 | False | False | 1 | 0.41596 | 2020-03-11 | 0.0000 | 0 | 4 | city | MG | 0 | 0 |
| 627866 | Divinópolis | 3122306 | 2020-03-12 | 202011 | 240408 | 238230 | False | False | 1 | 0.41596 | 2020-03-12 | 0.0000 | 0 | 5 | city | MG | 0 | 0 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 1005149 | Wenceslau Braz | 3172202 | 2021-08-08 | 202132 | 2548 | 2552 | False | True | 175 | 6868.13187 | 2021-06-18 | 0.0229 | 4 | 460 | city | MG | 0 | 0 |
| 1005150 | Água Boa | 3100609 | 2021-08-08 | 202132 | 13523 | 13735 | False | True | 511 | 3778.74732 | 2021-06-18 | 0.0137 | 7 | 408 | city | MG | 0 | 0 |
| 1005151 | Água Comprida | 3100708 | 2021-08-08 | 202132 | 1992 | 1999 | False | True | 169 | 8483.93574 | 2021-06-18 | 0.0473 | 8 | 436 | city | MG | 0 | 0 |
| 1005152 | Águas Formosas | 3100906 | 2021-08-08 | 202132 | 19247 | 19207 | False | True | 899 | 4670.85780 | 2021-06-18 | 0.0345 | 31 | 431 | city | MG | 0 | 0 |
| 1005153 | Águas Vermelhas | 3101003 | 2021-08-08 | 202132 | 13599 | 13539 | False | True | 402 | 2956.09971 | 2021-06-18 | 0.0174 | 7 | 446 | city | MG | 0 | 0 |
370801 rows × 18 columns
Escolhendo uma cidade específica para conhecer melhor algumas informações do dataset.
selecao = (dadosVacinacao[6] >= '2021-01-18')
dadosVacinacao = dadosVacinacao[selecao]
numCasos = dadosCovid[dadosCovid[14] == 'state']
numCasos = numCasos[[15,16]]
numCasos[16] = pd.to_numeric(numCasos[16])
numCasosGrouped = numCasos.groupby([15]).sum([16]).mean()
print(f'a média por estado de casos de covid no país é: {float(numCasosGrouped):.2f}')
a média por estado de casos de covid no país é: 747005.11
dados_de_MG = dadosCovid[dadosCovid[15] == "MG"]
for i in range(18):
dados_de_MG[i] = dados_de_MG[i].str.strip()
dados_de_MG[16] = pd.to_numeric(dados_de_MG[16])
dados_de_MG[17] = pd.to_numeric(dados_de_MG[17])
dadosMGCasos = dados_de_MG[dados_de_MG[14] == 'state']
dadosMGCasos = dadosMGCasos[[15,16]]
dadosMGCasos = dadosMGCasos.groupby([15]).sum()
dadosMGCasos = int(dadosMGCasos[16])
localComparadoGlobal = dadosMGCasos/int(numCasosGrouped) #.
print(f'Quando comparado com a média do pais, MG possui {localComparadoGlobal:.2f}x casos a mais')
Quando comparado com a média do pais, MG possui 2.67x casos a mais
numCasosObito = dadosCovid[dadosCovid[14] == 'state']
numCasosObito = numCasosObito[[15,17]]
numCasosObito[17] = pd.to_numeric(numCasosObito[17])
numCasosObitoGrouped = numCasosObito.groupby([15]).sum([17]).mean()
print(f'a média por estado de óbitos de covid no país é: {float(numCasosObitoGrouped):.2f}')
a média por estado de óbitos de covid no país é: 20866.59
dadosMGCasosObito = dados_de_MG[dados_de_MG[14] == 'state']
dadosMGCasosObito = dadosMGCasosObito[[15,17]]
dadosMGCasosObito = dadosMGCasosObito.groupby([15]).sum()
dadosMGCasosObito = int(dadosMGCasosObito[17])
localComparadoGlobalObito =dadosMGCasosObito/int(numCasosObitoGrouped) #quando comparado com a média MG possui 2,45 casos de óbito à mais.
print(f'Quando comparado com a média do pais, MG possui {localComparadoGlobalObito:.2f}x óbitos a mais')
Quando comparado com a média do pais, MG possui 2.46x óbitos a mais
numCasosCity = dadosCovid[dadosCovid[14] == 'city']
numCasosCity = numCasosCity[[0,16]]
numCasosCity[16] = pd.to_numeric(numCasosCity[16])
numCasosCityGrouped = numCasosCity.groupby([0]).sum()
teste = numCasosCityGrouped.reset_index()
maxObitos = teste[teste[16] == teste[16].min()]
print("O mínimo de óbitos é representado por: ")
display(maxObitos)
O mínimo de óbitos é representado por:
| 0 | 16 | |
|---|---|---|
| 2933 | Miravânia | 10 |
numCasosRegiaoTotal = []
for estado in (dadosCovid[15].unique()[1:]):
numCasosRegiao = dadosCovid[dadosCovid[15] == estado]
numCasosRegiao = numCasosRegiao[numCasosRegiao[14] == 'city']
numCasosRegiao[16] = pd.to_numeric(numCasosRegiao[16])
numCasosRegiao = numCasosRegiao.groupby([0,15], as_index=False).sum()
numCasosRegiao = numCasosRegiao.sort_values(by=[16], ascending=False)
numCasosRegiao.columns = ['cidade','estado','qtdCasos']
numCasosRegiaoTotal.append(numCasosRegiao.head(5))
numCasosRegiaoTotal = pd.concat(numCasosRegiaoTotal, axis=0).reset_index()
#Estamos considerando cada estado como uma região.
pd.set_option("display.max_rows", None, "display.max_columns", None)
display(numCasosRegiaoTotal)
pd.reset_option("^display.", silent=True)
| index | cidade | estado | qtdCasos | |
|---|---|---|---|---|
| 0 | 15 | Rio Branco | AC | 38006 |
| 1 | 5 | Cruzeiro do Sul | AC | 7809 |
| 2 | 20 | Tarauacá | AC | 6555 |
| 3 | 18 | Sena Madureira | AC | 5845 |
| 4 | 7 | Feijó | AC | 3330 |
| 5 | 46 | Maceió | AL | 83093 |
| 6 | 1 | Arapiraca | AL | 29123 |
| 7 | 51 | Marechal Deodoro | AL | 6274 |
| 8 | 66 | Palmeira dos Índios | AL | 4668 |
| 9 | 85 | Santana do Ipanema | AL | 4525 |
| 10 | 37 | Manaus | AM | 199225 |
| 11 | 45 | Parintins | AM | 10029 |
| 12 | 28 | Itacoatiara | AM | 9966 |
| 13 | 57 | Tefé | AM | 9789 |
| 14 | 35 | Manacapuru | AM | 9582 |
| 15 | 6 | Macapá | AP | 59625 |
| 16 | 12 | Santana | AP | 25582 |
| 17 | 5 | Laranjal do Jari | AP | 8380 |
| 18 | 8 | Oiapoque | AP | 5294 |
| 19 | 15 | Vitória do Jari | AP | 3928 |
| 20 | 334 | Salvador | BA | 232254 |
| 21 | 127 | Feira de Santana | BA | 52071 |
| 22 | 408 | Vitória da Conquista | BA | 34506 |
| 23 | 175 | Itabuna | BA | 33554 |
| 24 | 68 | Camaçari | BA | 24389 |
| 25 | 58 | Fortaleza | CE | 253842 |
| 26 | 99 | Juazeiro do Norte | CE | 29546 |
| 27 | 163 | Sobral | CE | 27231 |
| 28 | 43 | Caucaia | CE | 22283 |
| 29 | 104 | Maracanaú | CE | 21399 |
| 30 | 0 | Brasília | DF | 399047 |
| 31 | 1 | Importados/Indefinidos | DF | 54145 |
| 32 | 63 | Serra | ES | 68874 |
| 33 | 75 | Vila Velha | ES | 67884 |
| 34 | 76 | Vitória | ES | 58352 |
| 35 | 14 | Cariacica | ES | 41850 |
| 36 | 13 | Cachoeiro de Itapemirim | ES | 27574 |
| 37 | 94 | Goiânia | GO | 176791 |
| 38 | 15 | Aparecida de Goiânia | GO | 74725 |
| 39 | 14 | Anápolis | GO | 43820 |
| 40 | 195 | Rio Verde | GO | 28322 |
| 41 | 132 | Luziânia | GO | 27304 |
| 42 | 190 | São Luís | MA | 45136 |
| 43 | 88 | Imperatriz | MA | 17575 |
| 44 | 49 | Caxias | MA | 11646 |
| 45 | 22 | Balsas | MA | 11155 |
| 46 | 161 | Santa Inês | MA | 8874 |
| 47 | 61 | Belo Horizonte | MG | 226544 |
| 48 | 820 | Uberlândia | MG | 98939 |
| 49 | 199 | Contagem | MG | 37622 |
| 50 | 496 | Montes Claros | MG | 36777 |
| 51 | 415 | Juiz de Fora | MG | 35156 |
| 52 | 18 | Campo Grande | MS | 128853 |
| 53 | 30 | Dourados | MS | 37990 |
| 54 | 76 | Três Lagoas | MS | 19351 |
| 55 | 24 | Corumbá | MS | 15391 |
| 56 | 60 | Ponta Porã | MS | 9712 |
| 57 | 35 | Cuiabá | MT | 101282 |
| 58 | 109 | Rondonópolis | MT | 35489 |
| 59 | 140 | Várzea Grande | MT | 33283 |
| 60 | 121 | Sinop | MT | 23805 |
| 61 | 122 | Sorriso | MT | 17317 |
| 62 | 18 | Belém | PA | 105287 |
| 63 | 88 | Parauapebas | PA | 53487 |
| 64 | 8 | Ananindeua | PA | 25281 |
| 65 | 112 | Santarém | PA | 19447 |
| 66 | 64 | Marabá | PA | 18859 |
| 67 | 94 | João Pessoa | PB | 102939 |
| 68 | 48 | Campina Grande | PB | 41387 |
| 69 | 134 | Patos | PB | 13694 |
| 70 | 79 | Guarabira | PB | 9935 |
| 71 | 44 | Cajazeiras | PB | 9743 |
| 72 | 131 | Recife | PE | 147201 |
| 73 | 86 | Jaboatão dos Guararapes | PE | 34870 |
| 74 | 42 | Caruaru | PE | 33801 |
| 75 | 124 | Petrolina | PE | 29805 |
| 76 | 110 | Olinda | PE | 23141 |
| 77 | 214 | Teresina | PI | 103656 |
| 78 | 150 | Parnaíba | PI | 16062 |
| 79 | 162 | Piripiri | PI | 10685 |
| 80 | 81 | Floriano | PI | 8614 |
| 81 | 158 | Picos | PI | 8374 |
| 82 | 91 | Curitiba | PR | 206316 |
| 83 | 192 | Londrina | PR | 76907 |
| 84 | 210 | Maringá | PR | 59429 |
| 85 | 274 | Ponta Grossa | PR | 45281 |
| 86 | 118 | Foz do Iguaçu | PR | 42607 |
| 87 | 68 | Rio de Janeiro | RJ | 409881 |
| 88 | 78 | São Gonçalo | RJ | 55251 |
| 89 | 48 | Niterói | RJ | 51355 |
| 90 | 92 | Volta Redonda | RJ | 34392 |
| 91 | 14 | Campos dos Goytacazes | RJ | 30087 |
| 92 | 87 | Natal | RN | 97568 |
| 93 | 96 | Parnamirim | RN | 30291 |
| 94 | 86 | Mossoró | RN | 29372 |
| 95 | 18 | Caicó | RN | 12118 |
| 96 | 137 | São Gonçalo do Amarante | RN | 8307 |
| 97 | 37 | Porto Velho | RO | 84514 |
| 98 | 4 | Ariquemes | RO | 22165 |
| 99 | 24 | Ji-Paraná | RO | 18981 |
| 100 | 8 | Cacoal | RO | 14042 |
| 101 | 52 | Vilhena | RO | 13770 |
| 102 | 2 | Boa Vista | RR | 92961 |
| 103 | 12 | Rorainópolis | RR | 3170 |
| 104 | 7 | Importados/Indefinidos | RR | 2650 |
| 105 | 5 | Caracaraí | RR | 2618 |
| 106 | 3 | Bonfim | RR | 2434 |
| 107 | 322 | Porto Alegre | RS | 168389 |
| 108 | 91 | Caxias do Sul | RS | 67879 |
| 109 | 75 | Canoas | RS | 42859 |
| 110 | 309 | Pelotas | RS | 41251 |
| 111 | 365 | Santa Maria | RS | 38109 |
| 112 | 135 | Joinville | SC | 103876 |
| 113 | 85 | Florianópolis | SC | 79073 |
| 114 | 34 | Blumenau | SC | 55744 |
| 115 | 72 | Criciúma | SC | 37821 |
| 116 | 64 | Chapecó | SC | 37794 |
| 117 | 2 | Aracaju | SE | 126254 |
| 118 | 46 | Nossa Senhora do Socorro | SE | 18022 |
| 119 | 26 | Itabaiana | SE | 13120 |
| 120 | 67 | São Cristóvão | SE | 9840 |
| 121 | 32 | Lagarto | SE | 7745 |
| 122 | 573 | São Paulo | SP | 911605 |
| 123 | 100 | Campinas | SP | 104629 |
| 124 | 563 | São José do Rio Preto | SP | 91074 |
| 125 | 564 | São José dos Campos | SP | 87923 |
| 126 | 480 | Ribeirão Preto | SP | 74500 |
| 127 | 87 | Palmas | TO | 48688 |
| 128 | 13 | Araguaína | TO | 35934 |
| 129 | 57 | Gurupi | TO | 14252 |
| 130 | 103 | Porto Nacional | TO | 9513 |
| 131 | 92 | Paraíso do Tocantins | TO | 7901 |
import datetime
# dadosCovid[dadosCovid[2] == 'date']
dadosCovid2 = dadosCovid.drop(0)
dadosCovid2 = dadosCovid2[dadosCovid2[14] == 'state']
date_before_Setembro = (pd.Timestamp(2020, 9, 1))
date_after_Setembro = (pd.Timestamp(2020, 10, 1))
date_before_Outubro = (pd.Timestamp(2020, 10, 1))
date_after_Outubro = (pd.Timestamp(2020, 11, 1))
dadosCovid2[2] = pd.to_datetime(dadosCovid2[2], format='%Y-%m-%d')
incidenciaSetembro_2020 = dadosCovid2[(dadosCovid2[2] >= date_before_Setembro) & (dadosCovid2[2] < date_after_Setembro)]
incidenciaOutubro_2020 = dadosCovid2[(dadosCovid2[2] >= date_before_Outubro) & (dadosCovid2[2] < date_after_Outubro)]
incidenciaSetembro_2020[16] = pd.to_numeric(incidenciaSetembro_2020[16])
incidenciaOutubro_2020[16] = pd.to_numeric(incidenciaOutubro_2020[16])
incidenciaSetembro_2020 = incidenciaSetembro_2020[[2,16]]
incidenciaOutubro_2020 = incidenciaOutubro_2020[[2,16]]
totalSetembro_2020 = int(incidenciaSetembro_2020.sum())
totalOutubro_2020 = int(incidenciaOutubro_2020.sum())
variabilidade = totalSetembro_2020 - totalOutubro_2020
print(f"Considerando os meses de setembro de 2020 e outubro de 2020, temos uma variabilidade de: {variabilidade} casos.")
Considerando os meses de setembro de 2020 e outubro de 2020, temos uma variabilidade de: 182138 casos.
Podemos notar que em Outubro de 2020 houve um aumento de casos de incidencia de COVID-19 no país, com um aumento de 182138 em relação ao mês anterior(Setembro)
dadosCovid3 = dadosCovid.drop(0)
dadosCovid3 = dadosCovid3[dadosCovid3[14] == 'state']
dadosCovid3[2] = pd.to_datetime(dadosCovid3[2], format='%Y-%m-%d')
date_semester_begin = (pd.Timestamp(2020, 7, 1))
date_semester_end = (pd.Timestamp(2020, 12, 31))
incidencia_Segundo_Semestre_2020 = dadosCovid3[(dadosCovid3[2] >= date_semester_begin) & (dadosCovid3[2] < date_semester_end)]
incidencia_Segundo_Semestre_2020[16] = pd.to_numeric(incidencia_Segundo_Semestre_2020[16])
incidencia_Segundo_Semestre_2020 = incidencia_Segundo_Semestre_2020[[2,16,15]]
total_Segundo_Semestre_2020 = incidencia_Segundo_Semestre_2020.groupby([15], as_index=False).sum()
total_Segundo_Semestre_2020 = total_Segundo_Semestre_2020.sort_values(by=[16], ascending=False)
print('O estado é:')
display(total_Segundo_Semestre_2020.head(1))
O estado é:
| 15 | 16 | |
|---|---|---|
| 25 | SP | 1170698 |
numCasosState = dadosCovid[dadosCovid[14] == 'state']
numCasosState = numCasosState[[15,16]]
numCasosState[16] = pd.to_numeric(numCasosState[16])
numCasosStateGrouped = numCasosState.groupby([15]).sum()
numTotalCasosState = numCasosStateGrouped.reset_index()
numTotalCasosState = numTotalCasosState.sort_values(by=[16], ascending=False)
estadoNumCasosMax = numTotalCasosState.head(1)
print("O estado com maior incidência de casos é:")
display(estadoNumCasosMax)
O estado com maior incidência de casos é:
| 15 | 16 | |
|---|---|---|
| 25 | SP | 4117467 |
numCasosCidadeSP = dadosCovid[dadosCovid[15] == 'SP']
numCasosCidadeSP = numCasosCidadeSP[numCasosCidadeSP[14] == 'city']
numCasosCidadeSP = numCasosCidadeSP[[0,16]]
numCasosCidadeSP[16] = pd.to_numeric(numCasosCidadeSP[16])
numCasosCidadeSP = numCasosCidadeSP.groupby([0], as_index=False).sum()
numCasosCidadeSP = numCasosCidadeSP.sort_values(by=[16], ascending=False)
print("As cidades com maior indiência são:")
display(numCasosCidadeSP.head(5))
As cidades com maior indiência são:
| 0 | 16 | |
|---|---|---|
| 573 | São Paulo | 911605 |
| 100 | Campinas | 104629 |
| 563 | São José do Rio Preto | 91074 |
| 564 | São José dos Campos | 87923 |
| 480 | Ribeirão Preto | 74500 |
numObitosState = dadosCovid[dadosCovid[14] == 'state']
numObitosState = numObitosState[[15,17]]
numObitosState[17] = pd.to_numeric(numObitosState[17])
numObitosStateGrouped = numObitosState.groupby([15]).sum()
numTotalObitosState = numObitosStateGrouped.reset_index()
numTotalObitosState = numTotalObitosState.sort_values(by=[17], ascending=False)
estadoNumObitosMax = numTotalObitosState.head(1)
print('O estado com maior casos de óbito é:')
display(estadoNumObitosMax)
O estado com maior casos de óbito é:
| 15 | 17 | |
|---|---|---|
| 25 | SP | 140755 |
numObitosCidadeSP = dadosCovid[dadosCovid[15] == 'SP']
numObitosCidadeSP = numObitosCidadeSP[numObitosCidadeSP[14] == 'city']
numObitosCidadeSP = numObitosCidadeSP[[0,17]]
numObitosCidadeSP[17] = pd.to_numeric(numObitosCidadeSP[17])
numObitosCidadeSPGrouped = numObitosCidadeSP.groupby([0], as_index=False).sum()
numObitosCidadeSPGrouped = numObitosCidadeSPGrouped.sort_values(by=[17], ascending=False)
print("as cidades com maior número de óbito são: ")
display(numObitosCidadeSPGrouped.head(5))
as cidades com maior número de óbito são:
| 0 | 17 | |
|---|---|---|
| 573 | São Paulo | 35679 |
| 204 | Guarulhos | 4714 |
| 100 | Campinas | 4146 |
| 555 | São Bernardo do Campo | 3125 |
| 529 | Santo André | 2924 |
numObitosCidadeSPMax = numObitosCidadeSPGrouped.head(1)
print("Já a cidade com o maior número é: ")
display(numObitosCidadeSPMax)
Já a cidade com o maior número é:
| 0 | 17 | |
|---|---|---|
| 573 | São Paulo | 35679 |
maioresCidades = ['São Paulo', 'Rio de Janeiro', 'Brasília', 'Salvador', 'Fortaleza']
incidenciaCidades = []
for cidade in maioresCidades:
numIncidenciaCidade = dadosCovid[dadosCovid[0] == cidade]
numIncidenciaCidade = numIncidenciaCidade[numIncidenciaCidade[14] == 'city']
numIncidenciaCidade = numIncidenciaCidade[[0,15,16]]
numIncidenciaCidade[16] = pd.to_numeric(numIncidenciaCidade[16])
numIncidenciaCidadeGrouped = numIncidenciaCidade.groupby([0]).sum()
incidenciaCidades.append(numIncidenciaCidadeGrouped)
incidenciaCidades = pd.concat(incidenciaCidades, axis=0).reset_index()
incidenciaCidades = incidenciaCidades.sort_values(by=[16], ascending=False)
display(incidenciaCidades)
| 0 | 16 | |
|---|---|---|
| 0 | São Paulo | 911605 |
| 1 | Rio de Janeiro | 409881 |
| 2 | Brasília | 399047 |
| 4 | Fortaleza | 253842 |
| 3 | Salvador | 232254 |
Dentre as 5 maiores cidades do país a que possui o maior número de incidencias é a cidade de São Paulo, com 911605 casos registrados. Em contrapartida a cidade com o menor número de casos, dentre as 5 maiores, é a cidade de Salvador, com 232254 casos registrados.
def compara2020_2021(mes):
anos = [2020, 2021]
tabelas = []
for ano in anos:
dadosCovid3 = dadosCovid.drop(0)
dadosCovid3 = dadosCovid3[dadosCovid3[14] == 'state']
dadosCovid3[2] = pd.to_datetime(dadosCovid3[2], format='%Y-%m-%d')
date_semester_begin = (pd.Timestamp(ano, mes, 1))
date_semester_end = (pd.Timestamp(ano, mes, 31))
ObitosJunhoAgosto = dadosCovid3[(dadosCovid3[2] >= date_semester_begin) & (dadosCovid3[2] < date_semester_end)]
ObitosJunhoAgosto[17] = pd.to_numeric(ObitosJunhoAgosto[17])
ObitosJunhoAgosto = ObitosJunhoAgosto[[2,17,15]]
# display(ObitosJunhoAgosto.groupby([15], as_index=False).sum().sort_values(by=[17], ascending=False))
tabelas.append(ObitosJunhoAgosto.groupby([15], as_index=False).sum().sort_values(by=[17], ascending=False))
for i in tabelas:
display(i)
print('\n\n')
compara2020_2021(8) #agosto
| 15 | 17 | |
|---|---|---|
| 25 | SP | 6981 |
| 10 | MG | 2557 |
| 18 | RJ | 2550 |
| 4 | BA | 1881 |
| 22 | RS | 1519 |
| 8 | GO | 1412 |
| 17 | PR | 1331 |
| 23 | SC | 1133 |
| 15 | PE | 1017 |
| 6 | DF | 1000 |
| 12 | MT | 935 |
| 5 | CE | 692 |
| 14 | PB | 624 |
| 7 | ES | 591 |
| 11 | MS | 473 |
| 16 | PI | 471 |
| 9 | MA | 423 |
| 24 | SE | 410 |
| 13 | PA | 396 |
| 19 | RN | 379 |
| 2 | AM | 371 |
| 1 | AL | 311 |
| 26 | TO | 283 |
| 20 | RO | 257 |
| 3 | AP | 95 |
| 0 | AC | 78 |
| 21 | RR | 74 |
| 15 | 17 | |
|---|---|---|
| 25 | SP | 1759 |
| 10 | MG | 856 |
| 18 | RJ | 715 |
| 17 | PR | 601 |
| 8 | GO | 501 |
| 22 | RS | 242 |
| 15 | PE | 232 |
| 12 | MT | 217 |
| 4 | BA | 205 |
| 23 | SC | 200 |
| 5 | CE | 173 |
| 11 | MS | 119 |
| 13 | PA | 112 |
| 9 | MA | 104 |
| 6 | DF | 103 |
| 7 | ES | 91 |
| 1 | AL | 86 |
| 19 | RN | 86 |
| 14 | PB | 70 |
| 2 | AM | 57 |
| 26 | TO | 41 |
| 16 | PI | 40 |
| 21 | RR | 32 |
| 20 | RO | 31 |
| 24 | SE | 27 |
| 3 | AP | 17 |
| 0 | AC | 5 |
Fazendo um comparativo entre as duas tabelas que dizem respeito ao mês de agosto, existe uma grande diminuição no número de casos. Podemos pensar que isso seja devido a ocorrência de vacinações, visto que em agosto de 2021 grande parte da população já tinha tomado a segunda dose.
Os membros do grupo chegaram a conclusão que não seria possível criar uma correlação entre feriados nacionais e aumento ou diminuição dos casos de Covid-19
def comparaIncidencia2020_2021(mes, estado):
anos = [2020, 2021]
tabelas = []
for ano in anos:
dadosCovid3 = dadosCovid.drop(0)
dadosCovid3 = dadosCovid3[dadosCovid3[15] == estado]
dadosCovid3 = dadosCovid3[dadosCovid3[14] == 'state']
dadosCovid3[2] = pd.to_datetime(dadosCovid3[2], format='%Y-%m-%d')
date_semester_begin = (pd.Timestamp(ano, mes, 1))
date_semester_end = (pd.Timestamp(ano, mes, 31))
IncidenciaJunhoAgosto = dadosCovid3[(dadosCovid3[2] >= date_semester_begin) & (dadosCovid3[2] < date_semester_end)]
IncidenciaJunhoAgosto[16] = pd.to_numeric(IncidenciaJunhoAgosto[16])
IncidenciaJunhoAgosto = IncidenciaJunhoAgosto[[2,16,15]]
# display(IncidenciaJunhoAgosto.groupby([15], as_index=False).sum().sort_values(by=[16], ascending=False))
tabelas.append(IncidenciaJunhoAgosto.groupby([15], as_index=False).sum()) #.sort_values(by=[16], ascending=False))
for i in tabelas:
display(i)
print('\n\n')
estados = ['SP', 'MG', 'RJ', 'BA', 'PR']
print("Comparando os anos de 2020 e 2021 a patir do mês de agosto, temos as seguinte correlação,\nonde para cada estado, a primeira linha representa o ano de 2020 e a segunda o ano de 2021.")
for estado in estados:
comparaIncidencia2020_2021(8, estado)
Comparando os anos de 2020 e 2021 a patir do mês de agosto, temos as seguinte correlação, onde para cada estado, a primeira linha representa o ano de 2020 e a segunda o ano de 2021.
| 15 | 16 | |
|---|---|---|
| 0 | SP | 261100 |
| 15 | 16 | |
|---|---|---|
| 0 | SP | 59599 |
| 15 | 16 | |
|---|---|---|
| 0 | MG | 87944 |
| 15 | 16 | |
|---|---|---|
| 0 | MG | 31351 |
| 15 | 16 | |
|---|---|---|
| 0 | RJ | 57807 |
| 15 | 16 | |
|---|---|---|
| 0 | RJ | 28752 |
| 15 | 16 | |
|---|---|---|
| 0 | BA | 89908 |
| 15 | 16 | |
|---|---|---|
| 0 | BA | 8745 |
| 15 | 16 | |
|---|---|---|
| 0 | PR | 54491 |
| 15 | 16 | |
|---|---|---|
| 0 | PR | 23384 |
def evolucaoCovid():
dadosCovid3 = dadosCovid.drop(0)
dadosCovid3 = dadosCovid3[dadosCovid3[14] == 'state']
dadosCovid3[2] = pd.to_datetime(dadosCovid3[2], format='%Y-%m-%d')
date_semester_begin = (pd.Timestamp(2020, 2, 25))
date_semester_end = (pd.Timestamp(2020, 8, 25))
IncidenciaEvolucao = dadosCovid3[(dadosCovid3[2] >= date_semester_begin) & (dadosCovid3[2] < date_semester_end)]
IncidenciaEvolucao[16] = pd.to_numeric(IncidenciaEvolucao[16])
IncidenciaEvolucao = IncidenciaEvolucao[[2,16,15]]
# display(IncidenciaEvolucao.groupby([15], as_index=False).sum().sort_values(by=[16], ascending=False))
novoDf = IncidenciaEvolucao.groupby([15], as_index=False).sum().sort_values(by=[16], ascending=False)
novoDf = (pd.DataFrame(novoDf))
return novoDf[16].sum()
# tabelas.append(IncidenciaEvolucao.groupby([15], as_index=False).sum()) #.sort_values(by=[16], ascending=False))
# return novoDf
numCasosBrasil = evolucaoCovid()
#relativizando essa informação:
# print(numCasos)
numCasosBrasil_por_populacao = numCasosBrasil/(212600000) * 100
print(f'Número de casos de covid nos primeiros 6 meses no Brasil pela população do País {numCasosBrasil_por_populacao:.2f}%')
Número de casos de covid nos primeiros 6 meses no Brasil pela população do País 1.71%
Dados Japão
data_amostra = pd.read_csv(path+"/owid-covid-data.csv")
#WHO COVID-19 global table data October 10th 2021 at 10.33.17 PM
dados_japan = data_amostra[data_amostra['location'] == 'Japan']
dados_japan['date'] = pd.to_datetime(dados_japan['date'], format='%Y-%m-%d')
date_semester_begin = (pd.Timestamp(2020, 1, 22))
date_semester_end = (pd.Timestamp(2020, 7, 22))
dados_japan['new_cases'] = pd.to_numeric(dados_japan['new_cases'])
dados_japan_semester = dados_japan[(dados_japan['date'] >= date_semester_begin) & (dados_japan['date'] < date_semester_end)]
# display(dados_japan_semester)
dados_japan_grouped = dados_japan.groupby(['location']).sum()
numCasosJapao = int(dados_japan_grouped['new_cases'])
numCasosJapao_por_populacao = numCasosJapao/125800000 * 100
print(f'Número de casos de covid nos primeiros 6 meses no Japão pela população do País {numCasosJapao_por_populacao:.2f}%')
# display(dados_japan_semester)
Número de casos de covid nos primeiros 6 meses no Japão pela população do País 1.36%
Gráficos
dadosCovid3 = dadosCovid.drop(0)
dadosCovid3 = dadosCovid3[dadosCovid3[14] == 'state']
dadosCovid3[2] = pd.to_datetime(dadosCovid3[2], format='%Y-%m-%d')
date_semester_begin = (pd.Timestamp(2020, 2, 25))
date_semester_end = (pd.Timestamp(2020, 8, 25))
IncidenciaEvolucao = dadosCovid3[(dadosCovid3[2] >= date_semester_begin) & (dadosCovid3[2] <= date_semester_end)]
IncidenciaEvolucao[16] = pd.to_numeric(IncidenciaEvolucao[16])
IncidenciaEvolucao = IncidenciaEvolucao[[2,16,15]]
IncidenciaEvolucao.groupby([2], as_index=False).sum()
| 2 | 16 | |
|---|---|---|
| 0 | 2020-02-25 | 1 |
| 1 | 2020-02-26 | 0 |
| 2 | 2020-02-27 | 0 |
| 3 | 2020-02-28 | 1 |
| 4 | 2020-02-29 | 0 |
| ... | ... | ... |
| 178 | 2020-08-21 | 32326 |
| 179 | 2020-08-22 | 45908 |
| 180 | 2020-08-23 | 21869 |
| 181 | 2020-08-24 | 23517 |
| 182 | 2020-08-25 | 46307 |
183 rows × 2 columns
IncidenciaEvolucao[2] = IncidenciaEvolucao[2].dt.strftime('%m/%Y')
dados_japan_semester['date'] = dados_japan_semester['date'].dt.strftime('%m/%Y')
print("Considerando o número de casos em um período mensal durante os primeiro 6 \nmeses, partindo do período onde ouveram os registros \ndos primeiros casos dos países analisados (Brasil e Japão),temos os seguintes gráficos:")
plt.plot(IncidenciaEvolucao.groupby([2]).sum()[16])
plt.xlabel('data')
plt.ylabel('casos')
plt.show()
plt.plot(dados_japan_semester.groupby('date').sum()['new_cases'])
plt.xlabel('data')
plt.ylabel('casos')
plt.show()
Considerando o número de casos em um período mensal durante os primeiro 6 meses, partindo do período onde ouveram os registros dos primeiros casos dos países analisados (Brasil e Japão),temos os seguintes gráficos:
#A partir desse momento, a variável "dadosCovid" diz respeito a dados de Minas Gerais.
dadosCovid = dadosMG
# Tabela com dados de vacinação nos 3 primeiros meses
selecaoAntecipada = ((dadosVacinacao[6] >= '2021-01-18') & (dadosVacinacao[6] <= '2021-04-18'))
df_antecipado = dadosVacinacao[selecaoAntecipada]
#dadosVacinacao.loc[:,[4,6]].sort_values([6])
df_antecipado = (df_antecipado.loc[:,[4,6]].sort_values([6]).groupby([4]).size().reset_index(name='Vacinados').rename(columns={4: 'Região'}))
display(df_antecipado)
plt.barh(df_antecipado.Região,df_antecipado.Vacinados,color="purple")
plt.title("Quantidade de Pessoas Vacinadas x Macrorregião nos 3 primeiros meses em MG")
plt.xlabel("Quantidade de vacinados")
plt.ylabel("Macrorregião")
| Região | Vacinados | |
|---|---|---|
| 0 | CENTRO | 1220167 |
| 1 | CENTRO SUL | 158675 |
| 2 | JEQUITINHONHA | 79104 |
| 3 | LESTE | 132467 |
| 4 | LESTE DO SUL | 137161 |
| 5 | NORDESTE | 159986 |
| 6 | NOROESTE | 140027 |
| 7 | NORTE | 267174 |
| 8 | OESTE | 219978 |
| 9 | SUDESTE | 325526 |
| 10 | SUL | 543364 |
| 11 | TRIANGULO DO NORTE | 244508 |
| 12 | TRIANGULO DO SUL | 127880 |
| 13 | VALE DO ACO | 135085 |
Text(0, 0.5, 'Macrorregião')
regioes = df_antecipado.loc[:,"Região"]
regioes = np.array(regioes)
df_cidades_regiao = dadosVacinacao.loc[1:,[3,4]].drop_duplicates(subset = 3)
lista_cidades_mg = np.array(df_cidades_regiao[3])
df_cidades_regiao
| 3 | 4 | |
|---|---|---|
| 1 | BELO HORIZONTE | CENTRO |
| 2 | SANTA LUZIA | CENTRO |
| 3 | PORTEIRINHA | NORTE |
| 4 | IPATINGA | VALE DO ACO |
| 5 | UBERLANDIA | TRIANGULO DO NORTE |
| ... | ... | ... |
| 13075405 | ANGULO | SUL |
| 13096813 | BERTOLINIA | NOROESTE |
| 13098652 | SANTO ANTONIO DO PALMA | TRIANGULO DO SUL |
| 13128578 | TRES FORQUILHAS | SUL |
| 13219282 | CAICARA | TRIANGULO DO NORTE |
4844 rows × 2 columns
def listaCidadesMacro(macro):
return np.sort(np.array(df_cidades_regiao[3][df_cidades_regiao[4] == macro]))
cidadesCentro = listaCidadesMacro("CENTRO") #Onde mais se vacinou antecipadamente
cidadesJequi = listaCidadesMacro("JEQUITINHONHA") #Onde menos se vacionou antecipadamente
periodoAntesVacinacao = (dadosCovid[2] >= '2020-01-01') & (dadosCovid[2] <= '2021-01-18') # Do inicio da pandemia até o inicio da vacinacao
dfAntes = dadosCovid[periodoAntesVacinacao]
periodoDepoisVacinacao = (dadosCovid[2] >= '2021-01-18')
dfDepois = dadosCovid[periodoDepoisVacinacao]
print("CENTRO:")
#Centro
casosAntes = dfAntes[dfAntes[0].isin(cidadesCentro)]
numCasosAntesCentro = casosAntes[16].sum()
numObitosAntesCentro = casosAntes[17].sum()
print(f"Número de casos antes da vacinação: {numCasosAntesCentro}")
print(f"Número de óbitos antes da vacinação: {numObitosAntesCentro}")
casosDepois = dfDepois[dfDepois[0].isin(cidadesCentro)]
numCasosDepoisCentro = casosDepois[16].sum()
numObitosDepoisCentro = casosDepois[17].sum()
print(f"Número de casos depois da vacinação: {numCasosDepoisCentro}")
print(f"Número de óbitos depois da vacinação: {numObitosDepoisCentro}")
print(f"Houve um aumento de {((numCasosDepoisCentro-numCasosAntesCentro)/numCasosAntesCentro)*100}% no número de novos casos.")
print(f"Houve um aumento de {((numObitosDepoisCentro-numObitosAntesCentro)/numObitosAntesCentro)*100}% no número óbitos.")
print("\n\n")
#Jequitinhonha
print("JEQUITINHONHA:")
casosAntes = dfAntes[dfAntes[0].isin(cidadesJequi)]
numCasosAntesJequi = casosAntes[16].sum()
numObitosAntesJequi = casosAntes[17].sum()
print(f"Número de casos antes da vacinação: {numCasosAntesJequi}")
print(f"Número de óbitos antes da vacinação: {numObitosAntesJequi}")
casosDepois = dfDepois[dfDepois[0].isin(cidadesJequi)]
numCasosDepoisJequi = casosDepois[16].sum()
numObitosDepoisJequi = casosDepois[17].sum()
print(f"Número de casos depois da vacinação: {numCasosDepoisJequi}")
print(f"Número de óbitos depois da vacinação: {numObitosDepoisJequi}")
print(f"Houve um aumento de {((numCasosDepoisJequi-numCasosAntesJequi)/numCasosAntesJequi)*100}% no número de novos casos.")
print(f"Houve um aumento de {((numObitosDepoisJequi-numObitosAntesJequi)/numObitosAntesJequi)*100}% no número óbitos.")
#print(plt.plot(casosAntes[2],casosAntes[16]))
CENTRO: Número de casos antes da vacinação: 199724 Número de óbitos antes da vacinação: 4560 Número de casos depois da vacinação: 333066 Número de óbitos depois da vacinação: 9613 Houve um aumento de 66.76313312371072% no número de novos casos. Houve um aumento de 110.81140350877192% no número óbitos. JEQUITINHONHA: Número de casos antes da vacinação: 4628 Número de óbitos antes da vacinação: 58 Número de casos depois da vacinação: 14757 Número de óbitos depois da vacinação: 270 Houve um aumento de 218.86343993085563% no número de novos casos. Houve um aumento de 365.51724137931035% no número óbitos.
menor = 9999999999999999
cidade = ""
for i in lista_cidades_mg:
conta = dfDepois[16][dfDepois[0]==i].sum()/int(np.resize(dfDepois[4][dfDepois[0]==i].unique(),(1,1)))
if (conta < menor) and (conta>0):
menor = conta
cidade = i
print(f"Cidade com o menor taxa de novos casos após a vacinação {cidade}")
print(f"Taxa de novos casos após a vacinação (novos casos/população estimada):{menor}")
/usr/local/lib/python3.7/dist-packages/ipykernel_launcher.py:4: RuntimeWarning: invalid value encountered in long_scalars after removing the cwd from sys.path.
Cidade com o menor taxa de novos casos após a vacinação MIRAVANIA Taxa de novos casos após a vacinação (novos casos/população estimada):0.0010175010175010174
print(f"Pertence à região {df_cidades_regiao[4][df_cidades_regiao[3]==cidade].unique()[0]}")
Pertence à região NORTE
taxa_cidades_mg = []
cidades = lista_cidades_mg
for i in cidades:
taxa = dfDepois[16][dfDepois[0]==i].sum()/int(np.resize(dfDepois[4][dfDepois[0]==i].unique(),(1,1)))
if (taxa>=0):
taxa_cidades_mg.append(taxa)
else:
cidades = cidades[cidades != i]
media = 0
taxa_cidades_mg = [x for x in taxa_cidades_mg if str(x) != 'nan']
for i in taxa_cidades_mg:
if (i>0):
media = media + (i/len(taxa_cidades_mg))
print(f"Média das cidades de MG: {media}")
plt.scatter(x=cidades,y=taxa_cidades_mg)
plt.title("Taxa de novos casos nas cidades de MG.")
plt.xlabel("Cidade")
plt.ylabel("Novos casos/População")
/usr/local/lib/python3.7/dist-packages/ipykernel_launcher.py:4: RuntimeWarning: invalid value encountered in long_scalars after removing the cwd from sys.path.
Média das cidades de MG: 0.04585659347651355
Text(0, 0.5, 'Novos casos/População')
maior = -999999999999999
macroMaior = ""
menor = 9999999999999999
macroMenor = ""
valoresMacros = []
somaMacro = 0
for i in regioes:
#print(f"Macro: {i}")
cidadesMacro = listaCidadesMacro(i)
casosAntes = dfAntes[dfAntes[0].isin(cidadesMacro)]
numCasosAntes = casosAntes[16].sum()
#numObitosAntes = casosAntes[17].sum()
#print(f"Número de casos antes da vacinação: {numCasosAntes}")
#print(f"Número de óbitos antes da vacinação: {numObitosAntes}")
casosDepois = dfDepois[dfDepois[0].isin(cidadesMacro)]
numCasosDepois = casosDepois[16].sum()
#numObitosDepois = casosDepois[17].sum()
#print(f"Número de casos depois da vacinação: {numCasosDepois}")
#print(f"Número de óbitos depois da vacinação: {numObitosDepois}")
#print(f"Houve um aumento de {((numCasosDepois-numCasosAntes)/numCasosAntes)*100}% no número de novos casos.")
#print(f"Houve um aumento de {((numObitosDepois-numObitosAntes)/numObitosAntes)*100}% no número óbitos.")
if (numCasosAntes>0):
taxaCasos = (numCasosDepois-numCasosAntes)/numCasosAntes
valoresMacros.append(taxaCasos)
somaMacro = taxaCasos
if ((somaMacro < menor) and somaMacro >= 0 ):
menor = somaMacro
macroMenor = i
elif ((somaMacro > maior) and somaMacro >= 0):
maior = somaMacro
macroMaior = i
somaMacro = 0
print(f"Macrorregião com o maior percentual de aumento de novos casos: {macroMaior} com {maior*100}%.")
print(f"Macrorregião com o menor percentual de aumento de novos casos: {macroMenor} com {menor*100}%.")
plt.bar(regioes,valoresMacros,color="black")
plt.xticks (rotation=75)
plt.title("Gráfico de Barras dos Percentuais de Aumento de Novos Casos")
plt.xlabel("Macrorregião")
plt.ylabel("Taxa de aumento de novos casos")
Macrorregião com o maior percentual de aumento de novos casos: JEQUITINHONHA com 218.86343993085563%. Macrorregião com o menor percentual de aumento de novos casos: VALE DO ACO com 0.5009364352280163%.
Text(0, 0.5, 'Taxa de aumento de novos casos')
print(plt.pie(valoresMacros,labels=regioes))
plt.title("Distribuição de novos casos nas macrorregiões mineiras")
([<matplotlib.patches.Wedge object at 0x7f80b415e790>, <matplotlib.patches.Wedge object at 0x7f80b415ea90>, <matplotlib.patches.Wedge object at 0x7f80b4182110>, <matplotlib.patches.Wedge object at 0x7f80b41821d0>, <matplotlib.patches.Wedge object at 0x7f80b4182950>, <matplotlib.patches.Wedge object at 0x7f80b4161550>, <matplotlib.patches.Wedge object at 0x7f80b4161250>, <matplotlib.patches.Wedge object at 0x7f80b4161850>, <matplotlib.patches.Wedge object at 0x7f80b4182710>, <matplotlib.patches.Wedge object at 0x7f80b4161290>, <matplotlib.patches.Wedge object at 0x7f80b4b82190>, <matplotlib.patches.Wedge object at 0x7f80b417a150>, <matplotlib.patches.Wedge object at 0x7f80b417a190>, <matplotlib.patches.Wedge object at 0x7f80b417a6d0>], [Text(1.0817297390587388, 0.1996516256781126, 'CENTRO'), Text(0.8202174963445135, 0.7329687978968397, 'CENTRO SUL'), Text(-0.13284051460250362, 1.0919493567378216, 'JEQUITINHONHA'), Text(-0.7417048216665384, 0.8123262629735719, 'LESTE'), Text(-0.8938400001044617, 0.6411318539998275, 'LESTE DO SUL'), Text(-1.0425005014073965, 0.3509881829425702, 'NORDESTE'), Text(-1.0998494740399607, -0.01819710015419956, 'NOROESTE'), Text(-0.9951953287150482, -0.46860031765220483, 'NORTE'), Text(-0.5985445120860289, -0.9229000309089267, 'OESTE'), Text(-0.10734556129834577, -1.0947497113356748, 'SUDESTE'), Text(0.4779212202107406, -0.9907528991995316, 'SUL'), Text(0.90319370523708, -0.6278862403494083, 'TRIANGULO DO NORTE'), Text(1.0616575038143279, -0.2878946762181106, 'TRIANGULO DO SUL'), Text(1.0999989692198442, -0.0015058935155800816, 'VALE DO ACO')])
Text(0.5, 1.0, 'Distribuição de novos casos nas macrorregiões mineiras')
infoVacinas = dadosVacinacao.groupby([5]).size().reset_index(name="Quantidade").rename(columns={5: 'Nome'}).head(4)
print(f"A vacina mais aplicada em MG é a {infoVacinas.iloc[0,0]} com {infoVacinas.iloc[0,1]} doses distribuidas")
display(infoVacinas)
plt.bar(infoVacinas.Nome, infoVacinas.Quantidade,color = 'red')
plt.title("Quantidade de doses das vacinas aplicadas no estado de Minas Gerais")
plt.ylabel("Quantidade (em milhões)")
plt.xlabel("Vacina")
A vacina mais aplicada em MG é a ASTRAZENECA com 6457910 doses distribuidas
| Nome | Quantidade | |
|---|---|---|
| 0 | ASTRAZENECA | 6457910 |
| 1 | CORONAVAC | 4937783 |
| 2 | JANSSEN | 373220 |
| 3 | PFIZER | 1479438 |
Text(0.5, 0, 'Vacina')
maiorMortes = -999999999999999
cidadeMaiorMortes = ""
menorMortes = 999999999999999
cidadeMenorMortes = ""
#lista_cidades_mg = ["CURVELO"]
somaMacro = 0
for i in lista_cidades_mg:
#print(f"Macro: {i}")
#cidadesMacro = listaCidadesMacro(i)
casosAntes = dfAntes[dfAntes[0]==i]
#numCasosAntes = casosAntes[16].sum()
numObitosAntes = casosAntes[17].sum()
#print(f"Número de casos antes da vacinação: {numCasosAntes}")
#print(f"Número de óbitos antes da vacinação: {numObitosAntes}")
casosDepois = dfDepois[dfDepois[0]==i]
#numCasosDepois = casosDepois[16].sum()
numObitosDepois = casosDepois[17].sum()
#print(f"Número de casos depois da vacinação: {numCasosDepois}")
#print(f"Número de óbitos depois da vacinação: {numObitosDepois}")
#print(f"Houve um aumento de {((numCasosDepois-numCasosAntes)/numCasosAntes)*100}% no número de novos casos.")
#print(f"Houve um aumento de {((numObitosDepois-numObitosAntes)/numObitosAntes)*100}% no número óbitos.")
#taxaCasos = (numCasosDepois-numCasosAntes)/numCasosAntes
if (numObitosAntes!=0):
taxaObitos = (numObitosDepois-numObitosAntes)/numObitosAntes
if ((taxaObitos > maiorMortes)):
maiorMortes = taxaObitos
cidadeMaiorMortes = i
elif ((taxaObitos < menorMortes)):
menorMortes = taxaObitos
cidadeMenorMortes = i
print(f"Cidade com o maior percentual de aumento de novas mortes: {cidadeMaiorMortes} com {maiorMortes*100}%.")
print(f"Cidade com o menor percentual de aumento de novas mortes: {cidadeMenorMortes} com {menorMortes*100}%.")
Cidade com o maior percentual de aumento de novas mortes: LAGOA GRANDE com 2800.0%. Cidade com o menor percentual de aumento de novas mortes: DIOGO DE VASCONCELOS com -200.0%.
maiorMortes = -999999999999999
macroMaiorMortes = ""
menorMortes = 9999999999999999
macroMenorMortes = ""
serieMenor = pd.DataFrame()
serieMaior = pd.DataFrame()
somaMacro = 0
for i in regioes:
#print(f"Macro: {i}")
cidadesMacro = listaCidadesMacro(i)
casosAntes = dfAntes[dfAntes[0].isin(cidadesMacro)]
#numCasosAntes = casosAntes[16].sum()
numObitosAntes = casosAntes[17].sum()
#print(f"Número de casos antes da vacinação: {numCasosAntes}")
#print(f"Número de óbitos antes da vacinação: {numObitosAntes}")
casosDepois = dfDepois[dfDepois[0].isin(cidadesMacro)]
#numCasosDepois = casosDepois[16].sum()
numObitosDepois = casosDepois[17].sum()
#print(f"Número de casos depois da vacinação: {numCasosDepois}")
#print(f"Número de óbitos depois da vacinação: {numObitosDepois}")
#print(f"Houve um aumento de {((numCasosDepois-numCasosAntes)/numCasosAntes)*100}% no número de novos casos.")
#print(f"Houve um aumento de {((numObitosDepois-numObitosAntes)/numObitosAntes)*100}% no número óbitos.")
if (numObitosAntes>0):
taxaObitos = (numObitosDepois-numObitosAntes)/numObitosAntes
somaMacro = taxaCasos
if ((taxaObitos < menorMortes)):
menorMortes = taxaObitos
macroMenorObitos = i
serieMenor = casosDepois.loc[:,[0,2,17]]
elif ((taxaObitos > maiorMortes)):
maiorMortes = taxaObitos
macroMaiorObitos = i
serieMaior = casosDepois.loc[:,[0,2,17]]
somaMacro = 0
plt.figure(figsize=(10, 6))
plt.style.use('ggplot')
print(f"Macrorregião com o maior percentual de aumento de novas mortes: {macroMaiorObitos} com {maiorMortes*100}%.")
print(f"Macrorregião com o menor percentual de aumento de novas mortes: {macroMenorObitos} com {menorMortes*100}%.")
print(plt.plot(serieMenor[2],serieMenor[17],color="green",label="Vale do Aço"))
plt.title("Comportamento de novos óbitos pós vacinação nas duas regiões")
print(plt.plot(serieMaior[2],serieMaior[17],color="red",label="Vale do Jequitinhonha"))
plt.legend()
Macrorregião com o maior percentual de aumento de novas mortes: JEQUITINHONHA com 365.51724137931035%. Macrorregião com o menor percentual de aumento de novas mortes: VALE DO ACO com 24.691358024691358%. [<matplotlib.lines.Line2D object at 0x7f80b407fa90>] [<matplotlib.lines.Line2D object at 0x7f80b406c0d0>]
<matplotlib.legend.Legend at 0x7f80b4093590>
cidadesValeDoAco = listaCidadesMacro("VALE DO ACO")
df22 = dadosVacinacao[dadosVacinacao[3].isin(cidadesValeDoAco)]
df22 = df22.groupby([5]).size().reset_index(name="Quantidade").rename(columns={5: 'Nome'})
df22_1 = dadosVacinacao[dadosVacinacao[3].isin(cidadesJequi)]
df22_1 = df22_1.groupby([5]).size().reset_index(name="Quantidade").rename(columns={5: 'Nome'})
print(f"A vacina mais aplicada em ambas as macros é a {df22_1.iloc[0,0]}.")
A vacina mais aplicada em ambas as macros é a ASTRAZENECA.
faixaIdade = dadosVacinacao.groupby(1).size().reset_index(name="Quantidade").rename(columns={1: 'Faixa etária'}).head(11)
display(faixaIdade)
plt.figure(figsize=(7,7))
pie = plt.pie(faixaIdade.Quantidade)
#plt.tight_layout()
plt.legend(pie[0],faixaIdade["Faixa etária"], bbox_to_anchor=(1,0.5), loc="center right", fontsize=10,
bbox_transform=plt.gcf().transFigure)
plt.subplots_adjust(left=0.0, bottom=0.1, right=0.45)
plt.title("Distribuição da vacinação por faixa etária")
| Faixa etária | Quantidade | |
|---|---|---|
| 0 | 1 a 9 anos | 142 |
| 1 | 10 a 19 anos | 74213 |
| 2 | 20 a 29 anos | 803405 |
| 3 | 30 a 39 anos | 1585328 |
| 4 | 40 a 49 anos | 2408787 |
| 5 | 50 a 59 anos | 2439773 |
| 6 | 60 a 69 anos | 3027407 |
| 7 | 70 a 79 anos | 1931058 |
| 8 | 80 a 89 anos | 808322 |
| 9 | 90 ou mais | 169843 |
| 10 | <1ano | 23 |
Text(0.5, 1.0, 'Distribuição da vacinação por faixa etária')
from sklearn.model_selection import train_test_split
print(label)
0 city 1 city_ibge_code 2 date 3 epidemiological_week 4 estimated_population 5 estimated_population_2019 6 is_last 7 is_repeated 8 last_available_confirmed 9 last_available_confirmed_per_100k_inhabitants 10 last_available_date 11 last_available_death_rate 12 last_available_deaths 13 order_for_place 14 place_type 15 state 16 new_confirmed 17 new_deaths Name: 0, dtype: object
regioes = dadosVacinacao.loc[:,4]
regioes = np.array(regioes)
df_cidades_regiao = dadosVacinacao.loc[1:,[3,4]].drop_duplicates(subset = 3)
lista_cidades_mg = np.array(df_cidades_regiao[3])
df_cidades_regiao
macros = []
def listaCidadesMacro(macro):
return np.sort(np.array(df_cidades_regiao[3][df_cidades_regiao[4] == macro]))
def listaMacros():
return(df_cidades_regiao.loc[:,4].unique())
def modelo(dataIni,dataFinal):
periodo = ((dadosMG[2] >= dataIni) & (dadosMG[2] <= dataFinal))
df_periodo = dadosMG[periodo]
df = pd.DataFrame()
#dadosVacinacao.loc[:,[4,6]].sort_values([6])
#display(df_periodo) #= (df_periodo.loc[:,[4,6]].sort_values([6]).groupby([4]).size().reset_index(name='Vacinados').rename(columns={4: 'Região'}))
macros = listaMacros()
mediaMacro = 0
mediaObt = 0
nomesCidades = []
mediaCasosCidade = []
mediaObitosCidade = []
macroReg = []
for i in macros:
cidadesMacro = listaCidadesMacro(i)
for j in cidadesMacro:
mediaMacro += df_periodo[16][df_periodo[0] == j].sum()/len(df_periodo)
mediaObt += df_periodo[17][df_periodo[0] == j].sum()/len(df_periodo)
if (mediaMacro!=0):
nomesCidades.append(j)
mediaCasosCidade.append(mediaMacro)
mediaObitosCidade.append(mediaObt)
macroReg.append(i)
#print(f"A media da cidade {j} é = {mediaMacro}")
mediaMacro = 0
df["Cidade"] = nomesCidades
df["MediaCasos"] = mediaCasosCidade
df["MediaMortes"] = mediaObitosCidade
df["Macrorregiao"] = macroReg
return df
dados = modelo('2020-12-18','2021-04-18')
display(dados)
| Cidade | MediaCasos | MediaMortes | Macrorregiao | |
|---|---|---|---|---|
| 0 | ABAETE | 0.005583 | 0.000125 | CENTRO |
| 1 | ARACAI | 0.000423 | 0.000125 | CENTRO |
| 2 | ARCOS | 0.028501 | 0.000423 | CENTRO |
| 3 | AUGUSTO DE LIMA | 0.000932 | 0.000461 | CENTRO |
| 4 | BALDIM | 0.001634 | 0.000480 | CENTRO |
| ... | ... | ... | ... | ... |
| 843 | SAO FRANCISCO DE SALES | 0.001192 | 0.137711 | TRIANGULO DO SUL |
| 844 | TAPIRA | 0.001124 | 0.137711 | TRIANGULO DO SUL |
| 845 | UBERABA | 0.097525 | 0.140690 | TRIANGULO DO SUL |
| 846 | UNIAO DE MINAS | 0.000279 | 0.140690 | TRIANGULO DO SUL |
| 847 | VERISSIMO | 0.000375 | 0.140728 | TRIANGULO DO SUL |
848 rows × 4 columns
#dados[dados["Cidade"]=="VESPASIANO"]
from sklearn import tree
from sklearn.neighbors import KNeighborsClassifier
from sklearn import metrics
from sklearn.model_selection import cross_val_score
# uberaba = dados.drop(axis=0,index=110)
# uberaba
# dadosAux = pd.DataFrame()
# dadosAux["MediaCasos"] = [0.027377]
# dadosAux["MediaMortes"] = [0.041243]
model = tree.DecisionTreeClassifier(criterion="entropy")
#model = KNeighborsClassifier()
x_train,x_test,y_train,y_test = train_test_split(dados.loc[:,["MediaCasos","MediaMortes"]],dados.loc[:,"Macrorregiao"],test_size=1/4)
model.fit(x_train,y_train)
y_predicted = model.predict(x_test)
print('coefficient of determination :', model.score(x_test, y_test))
j = 0;
print("ERROS: ")
for i in y_test:
if (i!=y_predicted[j]):
print(f"{i} == {y_predicted[j]}")
j+=1
scores = cross_val_score(model,
x_test,
y_test, cv=10)
print("Accuracy via Validação Cruzada da Decision Tree: %0.2f (+/- %0.2f)" % (scores.mean(), scores.std() * 2))
coefficient of determination : 0.9905660377358491 ERROS: NORDESTE == OESTE LESTE DO SUL == NOROESTE Accuracy via Validação Cruzada da Decision Tree: 0.95 (+/- 0.08)
/usr/local/lib/python3.7/dist-packages/sklearn/model_selection/_split.py:667: UserWarning: The least populated class in y has only 5 members, which is less than n_splits=10. % (min_groups, self.n_splits)), UserWarning)
from sklearn import metrics
from sklearn.metrics import confusion_matrix
from sklearn.model_selection import cross_val_score
print(metrics.classification_report(y_test,y_predicted))
print("Matriz de Confusão para a Árvore de Decisão: ")
print(confusion_matrix(y_test, model.predict(x_test)))
precision recall f1-score support
CENTRO 1.00 1.00 1.00 27
CENTRO SUL 1.00 1.00 1.00 11
JEQUITINHONHA 1.00 1.00 1.00 5
LESTE 1.00 1.00 1.00 12
LESTE DO SUL 1.00 0.92 0.96 12
NORDESTE 1.00 0.92 0.96 13
NOROESTE 0.88 1.00 0.93 7
NORTE 1.00 1.00 1.00 25
OESTE 0.94 1.00 0.97 16
SUDESTE 1.00 1.00 1.00 24
SUL 1.00 1.00 1.00 37
TRIANGULO DO NORTE 1.00 1.00 1.00 9
TRIANGULO DO SUL 1.00 1.00 1.00 7
VALE DO ACO 1.00 1.00 1.00 7
accuracy 0.99 212
macro avg 0.99 0.99 0.99 212
weighted avg 0.99 0.99 0.99 212
Matriz de Confusão para a Árvore de Decisão:
[[27 0 0 0 0 0 0 0 0 0 0 0 0 0]
[ 0 11 0 0 0 0 0 0 0 0 0 0 0 0]
[ 0 0 5 0 0 0 0 0 0 0 0 0 0 0]
[ 0 0 0 12 0 0 0 0 0 0 0 0 0 0]
[ 0 0 0 0 11 0 1 0 0 0 0 0 0 0]
[ 0 0 0 0 0 12 0 0 1 0 0 0 0 0]
[ 0 0 0 0 0 0 7 0 0 0 0 0 0 0]
[ 0 0 0 0 0 0 0 25 0 0 0 0 0 0]
[ 0 0 0 0 0 0 0 0 16 0 0 0 0 0]
[ 0 0 0 0 0 0 0 0 0 24 0 0 0 0]
[ 0 0 0 0 0 0 0 0 0 0 37 0 0 0]
[ 0 0 0 0 0 0 0 0 0 0 0 9 0 0]
[ 0 0 0 0 0 0 0 0 0 0 0 0 7 0]
[ 0 0 0 0 0 0 0 0 0 0 0 0 0 7]]