<jupyter_start><jupyter_text>**Desafios Aula 01 - Imersão de Dados**1 - Por quê a classe tratamento é tão desbalanceada?2 - Como plotar as 5 últimas linhas de um DataFrame?3 - Como calcular a proporção da classe tratamento?4 - Quantos tipos de droga foram investigados?5 - Procurar na documentação o método query (pandas).6 - Renomear as colunas do Dataframe tirando o hífen.7 - Plotar um gráfico para todas as variáveis do Dataframe.8 - Deixar os gráficos bonitões. (Colocar título, label, e mudar cor) - Matplotlib9 - Fazer um resumo de toda a aula 01, e o quê você aprendeu com os dados. **Desafio 01 - Por quê a classe tratamento é tão desbalanceada?**A classe tratamento é desbalanceada porque todos os tratamentos com controle utilizam apenas uma única droga, enquanto os tratamentos com droga utilizam uma grande variedade de drogas.<jupyter_code>import pandas as pd

url_dados = "https://github.com/alura-cursos/imersaodados3/blob/main/dados/dados_experimentos.zip?raw=true"
df = pd.read_csv(url_dados, compression="zip")

df
df['tratamento'].value_counts()
df[['tratamento', 'droga']].value_counts()<jupyter_output><empty_output><jupyter_text>**Desafio 02 - Como plotar as 5 últimas linhas do Dataframe?**Com o método ".tail(n)", sendo n um parâmetro que você seleciona o número de linhas desejadas, você consegue mostrar as n últimas linhas do seu Dataframe.<jupyter_code>df.tail(5)<jupyter_output><empty_output><jupyter_text>**Desafio 03 - Como calcular a proporção da classe tratamento?**Passando o método value_counts, com o parâmetro "normalize=True", o Pandas retorna a frequência de cada uma das variáveis dentro da coluna tratamento.<jupyter_code>df.tratamento.value_counts(normalize=True)<jupyter_output><empty_output><jupyter_text>**Desafio 04 - Quantos tipos de droga foram investigados?**Foram investigados 3289 tipos de drogas diferentes.<jupyter_code>df.droga.value_counts()<jupyter_output><empty_output><jupyter_text>**Desafio 05 - Procurar na documentação o método query**O método query se assemelha à uma consulta do SQL. Ele permite que eu busque certos dados no meu Dataframe, impondo condições, como por exemplo retornar todas as linhas em que o tempo é igual a 24, e a dose é igual a D1<jupyter_code>df.query('tempo == 24 & dose == "D1"')
df.query('tratamento == "com_droga" & tempo == "48" & dose == "D2"')<jupyter_output><empty_output><jupyter_text>**Desafio 06 - Renomear as colunas do Dataframe, removendo os hífens**Foi utilizado o método str.replace, passando o parâmetro de trocar todos os hífens por espaço em branco. Importante notar que para a mudança ser efetivada, foi necessário atribuir ela à variável "df.columns".<jupyter_code>df.columns = df.columns.str.replace("-", "")
df<jupyter_output><empty_output><jupyter_text>**Desafio 07 - Plotar um gráfico para todas as variáveis do Dataframe** **Gráfico de barras com a frequência do tipo de tratamento**<jupyter_code>df['tratamento'].value_counts().plot.bar()<jupyter_output><empty_output><jupyter_text>**Gráfico de pizza com a frequência do tipo de tratamento**<jupyter_code>df['tratamento'].value_counts().plot.pie()<jupyter_output><empty_output><jupyter_text>**Gráfico de barras com a frequência do tipo de dose**<jupyter_code>df['dose'].value_counts().plot.bar()<jupyter_output><empty_output><jupyter_text>**Gráfico de pizza da frequência do tipo de dose**<jupyter_code>df['dose'].value_counts().plot.pie()<jupyter_output><empty_output><jupyter_text>**Gráfico de barras da frequência das 3 quantidades de tempo**<jupyter_code>df['tempo'].value_counts().plot.bar()<jupyter_output><empty_output><jupyter_text>**Gráfico de pizza da frequência das 3 quantidades de tempo**<jupyter_code>df['tempo'].value_counts().plot.pie()<jupyter_output><empty_output><jupyter_text>**Gráfico de barras das 5 drogas mais utilizadas no experimento**<jupyter_code>df['droga'].value_counts().head(5).plot.bar()<jupyter_output><empty_output><jupyter_text>**Desafio 08 - Deixar os gráficos bonitões. (Colocar título, label, e mudar cor) - Matplotlib** O parâmetro color dentro de bar() permite que o usuário selecione as cores de cada linha do gráfico. Os parâmetros set_title, set_ylabel e set_xlabel permitem que o usuário escreva o nome do gráfico, além dos seus eixos X e Y<jupyter_code>ax = df['tratamento'].value_counts().plot.bar(color=['red','blue'])
ax.set_title("Distribuição dos tipos de tratamento")
ax.set_ylabel("Frequência do tratamento")
ax.set_xlabel("Tipo de tratamento")<jupyter_output><empty_output><jupyter_text>O paâmetro autopct permite que o usuário mostre a quantidade de casas decimais presentes em cada uma das partes do gráfico<jupyter_code>ax = df['tratamento'].value_counts().plot.pie(autopct='%1.1f%%', colors=['orange','yellow'])
ax.set_title("Proporção dos tipos de tratamento")
ax.set_ylabel("")
ax = df['dose'].value_counts().plot.bar(color=['purple','brown'])
ax.set_title("Proporção dos tipos de dose")
ax.set_ylabel("Frequência do tipo de dose")
ax.set_xlabel("Tipo de dose")
ax
bx = df['dose'].value_counts().plot.pie(autopct='%1.1f%%', colors=['purple', 'red'])
bx.set_title("Frequência de cada tipo de dose")
bx.set_ylabel("")
cx = df['tempo'].value_counts().plot.bar(color=['#f9ab00', '#616161', '#00e'])
cx.set_title("Frequência dos experimentos por tempo")
cx.set_ylabel("Frequência")
cx.set_xlabel("Tempos aplicados")
cx=df['tempo'].value_counts().plot.pie(autopct='%1.1f%%', colors=['#f9ab00', '#616161', '#00e'])
cx.set_title("Frequência dos tempos aplicados (horas)")
cx.set_ylabel("")<jupyter_output><empty_output><jupyter_text>**Desafio 09 - Fazer um resumo de toda a aula 01, e o quê você aprendeu com os dados.** O resumo se encontra no caderno da Aula 01<jupyter_code><jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.12126507076708021, 'fraction_numerical': 0.014677616634632186, 'mean_word_length': 7.0055944055944055, 'pattern_counts': {'":': 0, '<': 65, '<?xml version=': 0, '>': 65, 'https://': 1, 'lorem ipsum': 0, 'www.': 0, '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': '16', 'dir': 'jupyter-structured-clean-dedup', 'id': '283941', 'license': 'MIT', 'n_tokens_mistral': 2157, 'n_tokens_neox': 2097, 'n_words': 552, 'path': 'desafio01_imersao.ipynb', 'repo_name': 'gbrl99/imersaodados', 'size': '5723'}