<jupyter_start><jupyter_text>Base de dados usada para a realização desse projeto[COVID-19 Cases, hospitalizations and deaths, County](https://catalog.data.gov/dataset/covid-19-cases-hospitalizations-and-deaths-by-county/resource/9151346d-21bd-4f13-a7e2-ac27103ef698)<jupyter_code># Instalando Biblioteca Pandera

!pip install pandera<jupyter_output>Requirement already satisfied: pandera in /usr/local/lib/python3.7/dist-packages (0.8.0)
Requirement already satisfied: typing-inspect>=0.6.0 in /usr/local/lib/python3.7/dist-packages (from pandera) (0.7.1)
Requirement already satisfied: pandas>=1.0 in /usr/local/lib/python3.7/dist-packages (from pandera) (1.1.5)
Requirement already satisfied: pyarrow in /usr/local/lib/python3.7/dist-packages (from pandera) (3.0.0)
Requirement already satisfied: pandas-stubs in /usr/local/lib/python3.7/dist-packages (from pandera) (1.2.0.39)
Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.7/dist-packages (from pandera) (21.3)
Requirement already satisfied: typing-extensions>=3.7.4.3 in /usr/local/lib/python3.7/dist-packages (from pandera) (3.10.0.2)
Requirement already satisfied: numpy>=1.9.0 in /usr/local/lib/python3.7/dist-packages (from pandera) (1.19.5)
Requirement already satisfied: wrapt in /usr/local/lib/python3.7/dist-packages (from pandera) (1.13.3)
Requirement already[...]<jupyter_text>Importando Bibliotecas para a utlização do pandas, pandera, ler arquivos json e acessar o bucket do GCP<jupyter_code># Importando Bibliotecas

import pandas as pd
import pandera as pa
import json
from google.cloud import storage<jupyter_output><empty_output><jupyter_text>Utilizando chave de Serviço do GCP<jupyter_code>storage_client = storage.Client.from_service_account_json('/content/drive/MyDrive/Dados/Projeto_Final/chave_projeto-finalsc01-b94741ddd471.json')<jupyter_output><empty_output><jupyter_text>Acessando Bucket do Projeto<jupyter_code>bucket_name = 'projeto-finalsc01'
bucket = storage_client.get_bucket(bucket_name)<jupyter_output><empty_output><jupyter_text>Listando Arquivos no Bucket<jupyter_code>filename = list(bucket.list_blobs(prefix=''))
for name in filename:
  print(name.name)<jupyter_output>chave/
chave/projeto-finalsc01-b94741ddd471.json
dados-brutos/
dados-brutos/COVID-19_Vaccinations_in_the_United_States_County.csv
dados-brutos/COVID_US_HOSPITALIZATION.json
dados-tratados/
dados-tratados/Casos_Hospitalizacoes_Obitos_Cidade.csv
dados-tratados/Fairfield_County_Hospitalizacoes.csv
dados-tratados/Fairfield_County_vacinacao.csv
dados-tratados/Hartford_County_Hospitalizacoes.csv
dados-tratados/Hartford_County_vacinacao.csv
dados-tratados/Litchfield_County_Hospitalizacoes.csv
dados-tratados/Middlesex_County_Hospitalizacoes.csv
dados-tratados/New_Haven_County_Hospitalizacoes.csv
dados-tratados/New_Haven_County_vacinacao.csv
dados-tratados/New_London_County_Hospitalizacoes.csv
dados-tratados/New_London_County_vacinacao.csv
dados-tratados/Tolland_County_Hospitalizacoes.csv
dados-tratados/Vacinacoes_nos_EUA.csv
dados-tratados/Windham_County_Hospitalizacoes.csv
dados-tratados/vacina_8_condados_us.csv
dados_tratados_condados/
dados_tratados_condados/Condados_Hospitalizados.csv
dado[...]<jupyter_text>Carregando Dataset json<jupyter_code>blob = bucket.blob('dados-brutos/COVID_US_HOSPITALIZATION.json')
data = json.loads(blob.download_as_string(client=None))<jupyter_output><empty_output><jupyter_text>Criando DataFrame ordenado por Dados utilizando pandas<jupyter_code>df = pd.DataFrame(data["data"])
df<jupyter_output><empty_output><jupyter_text>Analisando a base de dados<jupyter_code>print(df.info())<jupyter_output><class 'pandas.core.frame.DataFrame'>
RangeIndex: 3616 entries, 0 to 3615
Data columns (total 19 columns):
 #   Column  Non-Null Count  Dtype 
---  ------  --------------  ----- 
 0   0       3616 non-null   object
 1   1       3616 non-null   object
 2   2       3616 non-null   int64 
 3   3       3616 non-null   int64 
 4   4       0 non-null      object
 5   5       3616 non-null   int64 
 6   6       0 non-null      object
 7   7       3616 non-null   object
 8   8       3616 non-null   object
 9   9       3616 non-null   object
 10  10      3616 non-null   object
 11  11      3616 non-null   object
 12  12      3072 non-null   object
 13  13      3072 non-null   object
 14  14      3352 non-null   object
 15  15      3616 non-null   object
 16  16      3616 non-null   object
 17  17      3072 non-null   object
 18  18      3072 non-null   object
dtypes: int64(3), object(16)
memory usage: 536.9+ KB
None<jupyter_text>Vizualização do schema<jupyter_code>pd.DataFrame(data['meta']['view']["columns"])<jupyter_output><empty_output><jupyter_text>Deletando colunas que não fazem sentido para a análise de dados<jupyter_code>df.drop([0,1,2,3,4,5,6,7,], axis = 1, inplace=True)<jupyter_output><empty_output><jupyter_text>Traduzindo o Schema para Português-BR<jupyter_code>df.rename(columns={
    8:'Data_Atualizacao',
    9:'Condado_Codigo',
    10:'Condado',
    11:'Casos_Total',
    12:'Casos_Confirmados',
    13:'Casos_Provaveis',
    14:'Casos_Total_Taxa',
    15:'Casos_Hospitalizados',
    16:'Obitos_Total',
    17:'Obitos_Confirmados',
    18:'Obitos_Provaveis'

}, inplace=True)<jupyter_output><empty_output><jupyter_text>Verificando os valores nulos<jupyter_code>df.isna().sum()<jupyter_output><empty_output><jupyter_text>Substituindo valores nulos por 0.<jupyter_code>df.replace([None], '0', inplace=True)<jupyter_output><empty_output><jupyter_text>Modificando o tipo de dado de algumas colunas para fazer a validação<jupyter_code># Alterando tipo de dados da Coluna 'Data_Atualizacao' para datetime

df['Data_Atualizacao'] =  pd.to_datetime(df['Data_Atualizacao'])

# Alterando tipo de dados da Coluna 'Condado' para String

df[['Condado']] = df[['Condado']].astype(str)

# Listando Dados Únicos na Coluna 'Condado'

sorted(pd.unique(df['Condado']))

# Procurar um dado em uma coluna e alterar
# Acrescentar 'County aos nomes dos Condados


df.loc[df.Condado == 'Fairfield', ['Condado']] = 'Fairfield County'
df.loc[df.Condado == 'Hartford', ['Condado']] = 'Hartford County'
df.loc[df.Condado == 'Litchfield', ['Condado']] = 'Litchfield County'
df.loc[df.Condado == 'Middlesex', ['Condado']] = 'Middlesex County'
df.loc[df.Condado == 'New Haven', ['Condado']] = 'New Haven County'
df.loc[df.Condado == 'New London', ['Condado']] = 'New London County'
df.loc[df.Condado == 'Tolland', ['Condado']] = 'Tolland County'
df.loc[df.Condado == 'Windham', ['Condado']] = 'Windham County'

# Alterando tipo de dados da Coluna 'Condado_Codigo' para Int

df[['Condado_Codigo']] = df[['Condado_Codigo']].astype(int)

# Alterando tipo de dados da Coluna 'Casos_Total' para Int

df[['Casos_Total']] = df[['Casos_Total']].astype(int)

# Alterando tipo de dados da Coluna 'Casos_Confirmados' para Int

df[['Casos_Confirmados']] = df[['Casos_Confirmados']].astype(int)

# Alterando tipo de dados da Coluna 'Casos_Provaveis' para Int

df[['Casos_Provaveis']] = df[['Casos_Provaveis']].astype(int)

# Alterando tipo de dados da Coluna 'Casos_Total_Taxa' para Float

df[['Casos_Total_Taxa']] = df[['Casos_Total_Taxa']].astype(float)

# Alterando tipo de dados da Coluna 'Casos_Hospitalizados' para Int

df[['Casos_Hospitalizados']] = df[['Casos_Hospitalizados']].astype(int)

# Alterando tipo de dados da Coluna 'Obitos_Total' para Int

df[['Obitos_Total']] = df[['Obitos_Total']].astype(int)

# Alterando tipo de dados da Coluna 'Obitos_Confirmados' para Int

df[['Obitos_Confirmados']] = df[['Obitos_Confirmados']].astype(int)

# Alterando tipo de dados da Coluna 'Obitos_Provaveis' para Int

df[['Obitos_Provaveis']] = df[['Obitos_Provaveis']].astype(int)<jupyter_output><empty_output><jupyter_text>Validando os dados do DataFrame usando a biblioteca panderas.<jupyter_code># Validando Dados do Dataframe

schema = pa.DataFrameSchema(
    columns = {
        "Data_Atualizacao":pa.Column(pa.DateTime),
        "Condado_Codigo":pa.Column(pa.Int),
        "Condado":pa.Column(pa.String),
        "Casos_Total":pa.Column(pa.Int),
        "Casos_Confirmados":pa.Column(pa.Int),
        "Casos_Provaveis":pa.Column(pa.Int),
        "Casos_Total_Taxa":pa.Column(pa.Float),
        "Casos_Hospitalizados":pa.Column(pa.Int),
        "Obitos_Total":pa.Column(pa.Int),
        "Obitos_Confirmados":pa.Column(pa.Int),
        "Obitos_Provaveis":pa.Column(pa.Int)
    }
)

schema.validate(df)<jupyter_output><empty_output><jupyter_text>Conferindo Dados do Dataframe<jupyter_code># Listando tipos de dados nas Colunas

print(df.info())<jupyter_output><class 'pandas.core.frame.DataFrame'>
RangeIndex: 3616 entries, 0 to 3615
Data columns (total 11 columns):
 #   Column                Non-Null Count  Dtype         
---  ------                --------------  -----         
 0   Data_Atualizacao      3616 non-null   datetime64[ns]
 1   Condado_Codigo        3616 non-null   int64         
 2   Condado               3616 non-null   object        
 3   Casos_Total           3616 non-null   int64         
 4   Casos_Confirmados     3616 non-null   int64         
 5   Casos_Provaveis       3616 non-null   int64         
 6   Casos_Total_Taxa      3616 non-null   float64       
 7   Casos_Hospitalizados  3616 non-null   int64         
 8   Obitos_Total          3616 non-null   int64         
 9   Obitos_Confirmados    3616 non-null   int64         
 10  Obitos_Provaveis      3616 non-null   int64         
dtypes: datetime64[ns](1), float64(1), int64(8), object(1)
memory usage: 310.9+ KB
None<jupyter_text>Criando DataFrames Únicos para cada Condado e salvando no Bucket do GCP<jupyter_code># Criando DataFrame para o Condado Fairfield County

df_Fairfield_County = df.loc[df.Condado == 'Fairfield County']
df_Fairfield_County

# Salvando DataFrame do Condado Fairfield County no Bucket do GCP

bucket = storage_client.get_bucket('projeto-finalsc01')
bucket.blob('dados-tratados/Fairfield_County_Hospitalizacoes.csv').upload_from_string(df_Fairfield_County.to_csv(index=False),'Fairfield_County_Hospitalizacoes.csv' )
# Criando DataFrame para o Condado Hartford County

df_Hartford_County = df.loc[df.Condado == 'Hartford County']
df_Hartford_County

# Salvando DataFrame do Condado Hartford County no Bucket do GCP

bucket = storage_client.get_bucket('projeto-finalsc01')
bucket.blob('dados-tratados/Hartford_County_Hospitalizacoes.csv').upload_from_string(df_Hartford_County.to_csv(index=False),'Hartford_County_Hospitalizacoes.csv' )
# Criando DataFrame para o Condado Litchfield County

df_Litchfield_County = df.loc[df.Condado == 'Litchfield County']
df_Litchfield_County

# Salvando DataFrame do Condado Litchfield County no Bucket do GCP

bucket = storage_client.get_bucket('projeto-finalsc01')
bucket.blob('dados-tratados/Litchfield_County_Hospitalizacoes.csv').upload_from_string(df_Litchfield_County.to_csv(index=False),'Litchfield_County_Hospitalizacoes.csv' )
# Criando DataFrame para o Condado Middlesex County

df_Middlesex_County = df.loc[df.Condado == 'Middlesex County']
df_Middlesex_County

# Salvando DataFrame do Condado Middlesex County no Bucket do GCP

bucket = storage_client.get_bucket('projeto-finalsc01')
bucket.blob('dados-tratados/Middlesex_County_Hospitalizacoes.csv').upload_from_string(df_Middlesex_County.to_csv(index=False),'Middlesex_County_Hospitalizacoes.csv' )
# Criando DataFrame para o Condado New Haven County

df_New_Haven_County = df.loc[df.Condado == 'New Haven County']
df_New_Haven_County

# Salvando DataFrame do Condado New Haven County no Bucket do GCP

bucket = storage_client.get_bucket('projeto-finalsc01')
bucket.blob('dados-tratados/New_Haven_County_Hospitalizacoes.csv').upload_from_string(df_New_Haven_County.to_csv(index=False),'New_Haven_County_Hospitalizacoes.csv' )
# Criando DataFrame para o Condado New London County

df_New_London_County = df.loc[df.Condado == 'New London County']
df_New_London_County

# Salvando DataFrame do Condado New London County no Bucket do GCP

bucket = storage_client.get_bucket('projeto-finalsc01')
bucket.blob('dados-tratados/New_London_County_Hospitalizacoes.csv').upload_from_string(df_New_London_County.to_csv(index=False),'New_London_County_Hospitalizacoes.csv' )
# Criando DataFrame para o Condado Tolland County

df_Tolland_County = df.loc[df.Condado == 'Tolland County']
df_Tolland_County

# Salvando DataFrame do Condado Tolland County no Bucket do GCP

bucket = storage_client.get_bucket('projeto-finalsc01')
bucket.blob('dados-tratados/Tolland_County_Hospitalizacoes.csv').upload_from_string(df_Tolland_County.to_csv(index=False),'Tolland_County_Hospitalizacoes.csv' )
# Criando DataFrame para o Condado Windham County

df_Windham_County = df.loc[df.Condado == 'Windham County']
df_Windham_County

# Salvando DataFrame do Condado Windham County no Bucket do GCP

bucket = storage_client.get_bucket('projeto-finalsc01')
bucket.blob('dados-tratados/Windham_County_Hospitalizacoes.csv').upload_from_string(df_Windham_County.to_csv(index=False),'Windham_County_Hospitalizacoes.csv' )<jupyter_output><empty_output><jupyter_text>Salvando as transformações realizadas no DataFrame para o Bucket do GCP<jupyter_code># Salvando DataFrame normalizado no Bucket do GCP

bucket = storage_client.get_bucket('projeto-finalsc01')
bucket.blob('dados-tratados/Casos_Hospitalizacoes_Obitos_Cidade.csv').upload_from_string(df.to_csv(index=False),'Casos_Hospitalizacoes_Obitos_Cidade.csv' )<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.11007671110449095, 'fraction_numerical': 0.031205779399716988, 'mean_word_length': 5.233983286908078, 'pattern_counts': {'":': 11, '<': 71, '<?xml version=': 0, '>': 76, 'https://': 1, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 3, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 1, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '18', 'dir': 'jupyter-structured-clean-dedup', 'id': '595590', 'license': 'MIT', 'n_tokens_mistral': 5312, 'n_tokens_neox': 4977, 'n_words': 906, 'path': 'E01_Notebook_01_JSON- Projeto_Final_json.ipynb', 'repo_name': 'vitor-siqueira/Engenharia_de_Dados-Projeto_Final_SoulCode_Academy', 'size': '13427'}