Skip to content

Commit fdd28da

Browse files
authored
Challenges
1 parent e8bb8b1 commit fdd28da

File tree

2 files changed

+104
-0
lines changed

2 files changed

+104
-0
lines changed

CrossTab.py

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
import pandas as pd
2+
import seaborn as sns
3+
import numpy as np
4+
5+
url_data = 'https://github.com/alura-cursos/imersaodados3/blob/main/dados/dados_experimentos.zip?raw=true'
6+
7+
dados = pd.read_csv(url_data, compression='zip')
8+
9+
# Proporção dos valores pela linha
10+
pd.crosstab([dados['dose'], dados['tempo']], dados['tratamento'], normalize='index')
11+
12+
#Normalizando pela coluna
13+
pd.crosstab([dados['dose'], dados['tempo']], dados['tratamento'], normalize='columns')
14+
15+
#Usando o groupby()
16+
pd.crosstab([dados['dose'], dados['tempo']], dados['tratamento'], normalize='index').groupby('dose').count()
17+
18+
com_droga = dados[dados['tratamento']=='com_droga'].groupby(['dose','tempo']).count()['tratamento']
19+
com_controle = dados[dados['tratamento']=='com_controle'].groupby(['dose','tempo']).count()['tratamento']
20+
21+
concat = pd.concat([com_controle, com_droga], axis=1) #Juntando as duas tabelas
22+
concat.columns = ['com_controle', 'com_droga'] #Renomeando as colunas
23+
concat.div(concat.sum(axis=1), axis=0) #Dados normalizados
24+
25+
pd.crosstab([dados['tratamento'], dados['dose']], dados['tempo'], normalize='index')
26+
pd.crosstab(dados['tratamento'], dados['tempo'], normalize='index').groupby('tratamento').mean()
27+
28+
#Usando a aggfunc para pegar os valores menores para o g-10
29+
pd.crosstab(dados['dose'], dados['tempo'], values=dados['g-10'], aggfunc='min')
30+
31+
#Usando melt()
32+
pd.melt(frame=dados, id_vars='g-0', value_vars=['tempo', 'dose'])
33+
34+
sns.scatterplot(x='g-0', y='g-8', data=dados)
35+
sns.lmplot(data=dados, x='g-44', y='c-13', line_kws={'color': 'red'})
36+
37+
#Correlação G e C
38+
corr = dados.loc[:,'g-0':'c-99'].corr()
39+
corr_cel_gen = corr.loc['g-0':'g-50','c-0':'c-50']
40+
41+
mask = np.triu(np.ones_like(corr_g, dtype=bool))
42+
43+
# Set up the matplotlib figure
44+
f, ax = plt.subplots(figsize=(11, 9))
45+
46+
# Generate a custom diverging colormap
47+
cmap = sns.diverging_palette(230, 20, as_cmap=True)
48+
49+
# Draw the heatmap with the mask and correct aspect ratio
50+
sns.heatmap(corr_cel_gen, cmap=cmap, center=0,
51+
square=True, linewidths=.5, cbar_kws={"shrink": .5})

MergeData.py

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
import pandas as pd
2+
import seaborn as sns
3+
4+
#Dados do arquivo resultado
5+
dados_resultado = pd.read_csv('https://github.com/alura-cursos/imersao-dados-desafio-final/blob/main/Dados/dados_resultados.csv?raw=true')
6+
dados_resultado
7+
8+
#Exibe a soma total de cada coluna, exceto a primeira coluna -> drop.('id', axis=1)
9+
#em ordem decrescente -> ascending=False
10+
dados_resultado.drop('id', axis=1).sum().sort_values(ascending=False)
11+
12+
#Cria mais duas colunas contendo o número de MOA e se é ativo ou não
13+
dados_resultado['n_moa'] = dados_resultado.drop('id', axis=1).sum(axis=1)
14+
dados_resultado['ativo_moa'] = (dados_resultado['n_moa'] != 0)
15+
16+
#Merge de dados ('n_moa', 'ativo_moa') considerando como chave o 'id' (on='id')
17+
merge_dados = pd.merge(dados, dados_resultado[['id', 'n_moa', 'ativo_moa']], on='id')
18+
merge_dados.head()
19+
20+
#Exibe os valores contidos na combinação de dados, considerando os que tiveram
21+
#tratamento com controle
22+
merge_dados.query('tratamento == "com_controle"')['ativo_moa'].unique()
23+
24+
#Seleciona os valores dos 5 primeiros compostos e depois plota o boxplot
25+
composto_principal = merge_dados['droga'].value_counts().index[:5]
26+
plt.figure(figsize=(10, 8))
27+
sns.boxplot(data=merge_dados.query('droga in @composto_principal'), y='g-0', x='droga', hue='ativo_moa')
28+
29+
#Coluna eh_controle indicando se teve um tratamento com controle ou não
30+
merge_dados['eh_controle'] = (merge_dados['tratamento'] == 'com_controle')
31+
merge_dados
32+
33+
#Criando mais três colunas para indicar qual foi o tempo exposto
34+
merge_dados['tempo_24'] = (merge_dados['tempo'] == 24)
35+
merge_dados['tempo_48'] = (merge_dados['tempo'] == 48)
36+
merge_dados['tempo_72'] = (merge_dados['tempo'] == 72)
37+
merge_dados.head()
38+
39+
#Analisando o composto g-3 de acordo com o tempo e dose
40+
plt.figure(figsize=(10, 8))
41+
sns.boxplot(data=merge_dados.query('droga in @composto_principal'), y='g-3', x='tempo', hue='dose')
42+
#Outlier do g-3
43+
merge_dados['g-3'].max()
44+
45+
#Dependendo da forma do experimento o MOA(s) é ativado ou não para o mesmo g
46+
merge_dados[['g-3', 'tratamento', 'tempo', 'ativo_moa', 'n_moa']]
47+
48+
#O tipo do top 10 de compostos/drogas existentes
49+
#Comecei pelo 2 pelo fato de ter adicionado o 'n_moa' e 'ativo_moa'
50+
top_dados = pd.Series(dados_resultado.drop('id', axis=1).sum().sort_values(ascending=False))
51+
top_dados = top_dados.index[2:12].str.split('_')
52+
for i in top_dados:
53+
print(i[-1])

0 commit comments

Comments
 (0)