<jupyter_start><jupyter_text>Respostas aos desafios da aula 03 - ImersaoDados - <NAME>Linkedin: https://www.linkedin.com/in/vntoscano/Data: 05/05/2021 Contexto- Visualizando os dados Desafios:1. Desafio 01: Criar tabelas de frequência com pandas.groupby()2. Desafio 02: Normalizar o crosstab pela coluna.3. Desafio 03: Explorar outros agregadores.4. Desafio 04: Explorar o melt.5. Desafio 05: Calcular e analisar a correlação entre G e C. Refletir sobre os efeitos biológicos.6. Desafio 06: Estudar o código que plota a matriz de correlação (heatmap)7. Desafio 07: Resumo do que você aprendeu com os dados Importar a biblioteca [pandas](https://pandas.pydata.org/docs/index.html), a base de dados, as bliblitecas de gráficos e algumas adequações.<jupyter_code># Bibliotecas
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np

# Config dos plots
sns.set()
# Importar os dados
url_dados = 'https://github.com/alura-cursos/imersaodados3/blob/main/dados/dados_experimentos.zip?raw=true'
dados = pd.read_csv(url_dados, compression = 'zip')
# Ajustes nos nomes das variáveis
mapa = {'droga': 'composto'}
dados.rename(columns=mapa, inplace=True)
dados.columns = dados.columns.str.replace('-','_')

dados.head()<jupyter_output><empty_output><jupyter_text>Resposta 01 Criar tabelas de frequência com pandas.groupby()<jupyter_code># Criando uma tabela agrupada e contando valores
dados[['id','dose','tempo', 'tratamento']].groupby(['tratamento','dose','tempo']).count()
# Replicando a tabela obtida por crosstab
dados.groupby(by=(['dose','tempo']))['tratamento'].value_counts().unstack()<jupyter_output><empty_output><jupyter_text>Resposta 02 Normalizar o crosstab pela coluna.<jupyter_code>pd.crosstab([dados['dose'], dados['tempo']],  dados['tratamento'], normalize='columns')<jupyter_output><empty_output><jupyter_text>**Conclusão:** os dados estão normalizados.  Resposta 03 Explorar outros agregadores.<jupyter_code># Mediana
pd.crosstab([dados['dose'], dados['tempo']],  dados['tratamento'], values=dados['g_0'], aggfunc='median')
# Soma
pd.crosstab([dados['dose'], dados['tempo']],  dados['tratamento'], values=dados['g_0'], aggfunc='sum')
# Desvio padrão
pd.crosstab([dados['dose'], dados['tempo']],  dados['tratamento'], values=dados['g_0'], aggfunc='std')<jupyter_output><empty_output><jupyter_text>Resposta 04 Explorar o melt.<jupyter_code>base_tidy = pd.melt(dados, id_vars=['id','tratamento','dose','tempo','composto'], value_vars=['g_0'], value_name='valores', var_name='gene')
base_tidy.head()
base_tidy['valores'].describe()<jupyter_output><empty_output><jupyter_text>Resposta 05 Calcular e analisar a correlação entre G e C. Refletir sobre os efeitos biológicos.<jupyter_code>genes = dados.loc[:,'g_0':'g_49']
celulas = dados.loc[:,'c_0':'c_49']
dados_c_g = pd.concat([genes,celulas], axis=1)
dados_c_g.head()
corr_c_g = dados_c_g.corr()
corr = corr_c_g.loc[:'g_49','c_0':]
corr.head()<jupyter_output><empty_output><jupyter_text>Resposta 06 Estudar o código que plota a matriz de correlação (heatmap)<jupyter_code># Generate a mask for the upper triangle
mask = np.triu(np.ones_like(corr, dtype=bool))

# Set up the matplotlib figure
f, ax = plt.subplots(figsize=(10, 10))

# Generate a custom diverging colormap
cmap = sns.diverging_palette(20, 230, as_cmap=True)

# Draw the heatmap with the mask and correct aspect ratio
sns.heatmap(corr, mask=mask, cmap=cmap, center=0,
            square=True, linewidths=.5, cbar_kws={"shrink": .5})<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.1455786181404606, 'fraction_numerical': 0.0199033266988911, 'mean_word_length': 7.277647058823529, 'pattern_counts': {'":': 1, '<': 30, '<?xml version=': 0, '>': 30, 'https://': 3, 'lorem ipsum': 0, 'www.': 1, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '7', 'dir': 'jupyter-structured-clean-dedup', 'id': '455704', 'license': 'MIT', 'n_tokens_mistral': 1452, 'n_tokens_neox': 1355, 'n_words': 291, 'path': '20210505_Aula03_Victor.ipynb', 'repo_name': 'victorijsn/imersaodados3', 'size': '3536'}