import pandas as pd
import matplotlib.pyplot as plt
from datetime import datetime
import seaborn as sns
df = pd.read_csv('dataset/brazil_covid19.csv')
df = df.rename(columns = {
'date': 'data',
'region': 'regiao',
'state': 'estado',
'cases': 'casos',
'deaths': 'mortes'
})
# Top 10 maiores estados agrupados por número de casos
analise_1 = df.groupby("estado").sum().sort_values(by = "casos").tail(10)
analise_1.cumsum().plot(
title = "Top 10 - Estados com maiores casos",
figsize=(15, 5)
)
# Função para converter valores do dataset no formato padrão
def converterData(data):
return datetime.strptime(data, "%Y-%m-%d").date()
datas = df["data"]
datas
for i in range(len(datas)):
df.loc[i, "data"] = converterData(datas[i])
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))
# 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
# 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)
)
# 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()
# 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)
)
# 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)