Análise Exploratória de Dados - Evolução do Coronavírus no Brasil

Victor Hugo Negrisoli - Desenvolvedor Full-Stack & Analista de Dados

In [75]:
import pandas as pd
import matplotlib.pyplot as plt
from datetime import datetime
import seaborn as sns
In [76]:
df = pd.read_csv('dataset/brazil_covid19.csv')
In [77]:
df = df.rename(columns = {
    'date': 'data',
    'region': 'regiao',
    'state': 'estado',
    'cases': 'casos',
    'deaths': 'mortes'
})
In [78]:
# Top 10 maiores estados agrupados por número de casos

analise_1 = df.groupby("estado").sum().sort_values(by = "casos").tail(10)
In [79]:
analise_1.cumsum().plot(
    title = "Top 10 - Estados com maiores casos",
    figsize=(15, 5)
)
Out[79]:
<matplotlib.axes._subplots.AxesSubplot at 0x253b9951788>
In [80]:
# Função para converter valores do dataset no formato padrão

def converterData(data):
    return datetime.strptime(data, "%Y-%m-%d").date()
In [81]:
datas = df["data"]
datas
for i in range(len(datas)):
    df.loc[i, "data"] = converterData(datas[i])
In [82]:
analise_2 = df.groupby("data").sum().sort_values(by = "casos").tail(7)
analise_2.cumsum().plot(
    title = "Análise do crescimento de casos e mortes nos últimos 07 dias (04/04/2020)",
    figsize=(15, 5))
Out[82]:
<matplotlib.axes._subplots.AxesSubplot at 0x253b99d6288>
In [83]:
# Filtrando sempre pela última data do CSV

ultima_data = df["data"].max()
df_ultima_data = df[df["data"] == ultima_data].sort_values(by = "casos")
df_ultima_data
Out[83]:
data regiao estado casos mortes
2422 2020-04-28 Norte Tocantins 79 2
2406 2020-04-28 Centro-Oeste Mato Grosso do Sul 240 9
2405 2020-04-28 Centro-Oeste Mato Grosso 261 11
2415 2020-04-28 Nordeste Sergipe 280 11
2416 2020-04-28 Norte Acre 311 16
2413 2020-04-28 Nordeste Piauí 408 21
2420 2020-04-28 Norte Rondônia 413 11
2421 2020-04-28 Norte Roraima 425 6
2411 2020-04-28 Nordeste Paraíba 633 53
2404 2020-04-28 Centro-Oeste Goiás 661 27
2407 2020-04-28 Nordeste Alagoas 777 36
2414 2020-04-28 Nordeste Rio Grande do Norte 857 48
2417 2020-04-28 Norte Amapá 918 28
2403 2020-04-28 Centro-Oeste Distrito Federal 1213 28
2427 2020-04-28 Sul Paraná 1271 77
2428 2020-04-28 Sul Rio Grande do Sul 1286 45
2429 2020-04-28 Sul Santa Catarina 1476 44
2424 2020-04-28 Sudeste Minas Gerais 1649 71
2423 2020-04-28 Sudeste Espírito Santo 1874 64
2419 2020-04-28 Norte Pará 2262 129
2410 2020-04-28 Nordeste Maranhão 2528 145
2408 2020-04-28 Nordeste Bahia 2540 86
2418 2020-04-28 Norte Amazonas 4337 351
2412 2020-04-28 Nordeste Pernambuco 5724 508
2409 2020-04-28 Nordeste Ceará 6918 403
2425 2020-04-28 Sudeste Rio de Janeiro 8504 738
2426 2020-04-28 Sudeste São Paulo 24041 2049
In [84]:
# Analisando casos por estados na última data presente no CSV

date_format = "%d/%m/%Y"
ultima_data = ultima_data.strftime(date_format)

df_plot = df_ultima_data[["estado", "casos"]]
df_plot.index = df_ultima_data["estado"]
df_plot.plot(
    title = "Análise de casos por estados em {}".format(ultima_data),
    kind = "bar", 
    figsize = (15, 5)
)
Out[84]:
<matplotlib.axes._subplots.AxesSubplot at 0x253ba054148>
In [85]:
# Agrupando os casos pela região

df_group_regiao = df_ultima_data[["regiao", "casos"]].groupby(["regiao"]).sum().sort_values(by = "casos")
df_group_regiao.head()
Out[85]:
casos
regiao
Centro-Oeste 2375
Sul 4033
Norte 8745
Nordeste 20665
Sudeste 36068
In [86]:
# Analisando a quantidade de casos por região

df_group_regiao.plot(
    title = "Análise de casos por região em {}".format(ultima_data),
    kind = "bar", 
    figsize = (15, 5)
)
Out[86]:
<matplotlib.axes._subplots.AxesSubplot at 0x253b99ba788>
In [87]:
# Regressão linear das variáveis casos e mortes

df_reg_casos_mortes = df_ultima_data[["casos", "mortes"]]
casos = df_reg_casos_mortes["casos"]
mortes = df_reg_casos_mortes["mortes"]

sns.regplot(casos, mortes, df_reg_casos_mortes)
plt.xlabel("Casos")
plt.ylabel("Mortes")
plt.title("Regressão linear entre casos e mortes em {}".format(ultima_data))
plt.gcf().set_size_inches(16, 8)