-
Notifications
You must be signed in to change notification settings - Fork 0
/
casos_covid19_brasil_230920.py
139 lines (103 loc) · 4.09 KB
/
casos_covid19_brasil_230920.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
# -*- coding: utf-8 -*-
"""Casos_Covid19_Brasil_230920.ipynb
Automatically generated by Colaboratory.
Original file is located at
https://colab.research.google.com/drive/1l3WmPAqX4GMzV3nL-Rjb4AuXjkigoXxX
**Análise e visualização de dados dos casos de Covid-19 no Brasil.**
**Fonte:** https://covid.saude.gov.br/
"""
import pandas as pd
from google.colab import files
uploaded = files.upload()
import io
df = pd.read_csv(io.BytesIO(uploaded['brazil_covid19.csv']))
import warnings
warnings.filterwarnings('ignore')
df = df.rename(columns={'date': 'Data', 'region': 'Região','state': 'Estado','cases': 'Casos_Confirmados','deaths': 'Mortes'})
df.head(10)
df['Data'] = pd.to_datetime(df['Data'])
#Extraindo as informações do dataset:
df.info()
#Visualizando as colunas:
df.columns
df.Data.describe()
# Obtem o numero de casos confirmados e mortes agrupado por data e por região.
df_agrupado = df.groupby(['Data', 'Estado'])['Casos_Confirmados', 'Mortes'].sum().reset_index()
# Ordena o dataframe por mais casos confirmados
df_agrupado.sort_values(by='Casos_Confirmados', ascending=False)
# Obtem o numero de casos confirmados e mortes por estado.
df_group_estado = df.groupby('Estado')['Casos_Confirmados', 'Mortes'].sum().reset_index()
# ordena por estado com mais casos confirmados
df_agrupado.sort_values(by='Casos_Confirmados', ascending=False)
# Agrupa quantidade de novos casos confirmados e novas mortes por data
temp = df.groupby('Data')['Casos_Confirmados', 'Mortes'].sum().reset_index()
# Remodela o dataframe com variável e valor para ter quantidades de novos casos confirmados e novas mortes
temp = temp.melt(id_vars="Data", value_vars=['Casos_Confirmados', 'Mortes'],
var_name='Casos', value_name='Quantidade')
temp.head(20)
temp.count()
# habilita modo offline
from plotly.offline import plot, iplot, init_notebook_mode
init_notebook_mode(connected=True)
# Definindo o renderizador:
import plotly.io as pio
pio.renderers
pio.renderers.default = "colab"
# Cores
casos_confirmados = '#21bf73'
mortes = '#ff2e63'
import plotly.express as px
fig = px.area(temp,
x="Data",
y="Quantidade",
color='Casos',
height=600,
title='Casos ao longo do tempo',
color_discrete_sequence = [casos_confirmados, mortes])
fig.update_layout(xaxis_rangeslider_visible=True)
fig.show()
"""Casos ao longo do tempo"""
import numpy as np
import plotly.figure_factory as ff
from plotly.subplots import make_subplots
import plotly.express as px
# filtra os dados considerando o último dia da base de dados
completo = df[df['Data'] == max(df['Data'])]
# imprime as 5 primeiras linhas
completo.head()
completo.sort_values(by='Mortes', ascending=False)
# Plota painel
fig = px.treemap(completo.sort_values(by='Casos_Confirmados', ascending=False).reset_index(drop=True),
path=["Região", "Estado"],
values="Casos_Confirmados",
height=600,
title='Número de Casos Confirmados',
color_discrete_sequence = px.colors.qualitative.Dark2)
fig.data[0].textinfo = 'label+text+value'
fig.show()
# Plota Painel
fig = px.treemap(completo.sort_values(by='Mortes', ascending=False).reset_index(drop=True),
path=["Região", "Estado"],
values="Mortes",
height=600,
title='Número de Mortes Confirmadas',
color_discrete_sequence = px.colors.qualitative.Dark2)
fig.data[0].textinfo = 'label+text+value'
fig.show()
"""Picos de casos confirmados e mortes"""
fig = px.line(df_agrupado,
x="Data",
y="Casos_Confirmados",
color='Estado',
height=600,
title='Casos Confirmados',
color_discrete_sequence = px.colors.qualitative.Dark2 )
fig.show()
fig = px.line(df_agrupado,
x="Data",
y="Mortes",
color='Estado',
height=600,
title='Mortes Confirmadas',
color_discrete_sequence = px.colors.qualitative.Dark2)
fig.show()