<jupyter_start><jupyter_text>Un fanático de pokemones le pide analizar los datos de pokemones, para esto se le proporciona un conjunto de datos en archivo csv. Este fanático le pide a usted como analista investigar cuales son los pokemones con mayor ataque.<jupyter_code>import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from scipy import stats
import numpy as num
df = pd.read_csv('pokemon_data.csv')
df.head()<jupyter_output><empty_output><jupyter_text>Ejercicio 1:Calcule el promedio y la mediana del ataque de: 1. Todos los pokemones2. Los pokemones agrupados por Legendary (es decir el promedio y mediana de pokemones legendarios y no legendarios)3. Los pokemones agrupados por Type 1 **1.1 promedio y la mediana del ataque de todos los pokemones**<jupyter_code>df['Attack'].describe()
dfpok=df['Attack'].mean()
round(dfpok)
dfpok=df['Attack'].median()
dfpok<jupyter_output><empty_output><jupyter_text>**1.2. promedio y la mediana del ataque de los pokemones agrupados por legendary**<jupyter_code>df['clasificacion of legendary']=num.where(df['Legendary']==True,'Legendario','No Legendario')
df
dflg=df[['clasificacion of legendary','Attack']].groupby('clasificacion of legendary').mean()
round(dflg,4)
dflg=df[['clasificacion of legendary','Attack']].groupby('clasificacion of legendary').median()
round(dflg,4)<jupyter_output><empty_output><jupyter_text>**1.3. Promedio y Ataque de los pokemones agrupados por tipo**<jupyter_code>dfty=df[['Type 1','Attack']].groupby('Type 1').mean()
round(dfty,4)
dftu=df[['Type 1','Attack']].groupby('Type 1').median()
round(dftu,4)<jupyter_output><empty_output><jupyter_text>Ejercicio 2:Grafique el ataque de los pokemones con un grafico boxplot para los siguientes casos:1. Todos los pokemones2. Los pokemones agrupados por Legendary (es decir el promedio y mediana de pokemones legendarios y no legendarios)3. Los pokemones agrupados por Type 1 **2.1. Grafico Todos los pokemones**<jupyter_code>sns.set(rc={'figure.figsize':(13,7)})
tdate=df['Attack'].values
sns.displot(tdate, color='#15B7B5')
sns.set(rc={'figure.figsize':(10,5)})
gdata = df['Attack'].values
sns.boxplot(gdata, color='#FF33E7')
print(f'Median:  {df["Attack"].median()}')<jupyter_output>/usr/local/lib/python3.7/dist-packages/seaborn/_decorators.py:43: FutureWarning:

Pass the following variable as a keyword arg: x. From version 0.12, the only valid positional argument will be `data`, and passing other arguments without an explicit keyword will result in an error or misinterpretation.<jupyter_text>**2.2 Grafico pokemones Legendarios y no Legendarios**<jupyter_code>import plotly.express as px
fig = px.box(df, x='clasificacion of legendary', y='Attack', points='all',width=1250)
fig.show()<jupyter_output><empty_output><jupyter_text>**2.3 POKEMONES AGRUPADOS POR TIPOS**<jupyter_code>sns.set(rc={'figure.figsize':(10,8)})
dfty.plot(kind='bar',legend='Reverse', linewidth =1,color="#6EFF33")
plt.ylabel('Attack',fontsize=12)
plt.xlabel('Type 1',fontsize=12)
plt.grid()
plt.title("#Promedio de todos los pokemones agrupados por Tipos",fontsize=15)
plt.xticks(rotation=90,fontsize=10)
sns.set(rc={'figure.figsize':(10,8)})
dftu.plot(kind='bar',legend='Reverse', linewidth =1,color="#33FFF3")
plt.ylabel('Attack',fontsize=12)
plt.xlabel('Type 1',fontsize=12)
plt.grid()
plt.title("#Media de todos los pokemones agrupados por Tipos",fontsize=15)
plt.xticks(rotation=90,fontsize=10)<jupyter_output><empty_output><jupyter_text>Ejercicio 3:Realice las siguientes pruebas de hipótesis:1. El promedio del ataque de los pokemones es mayor a 772. El promedio del ataque de los pokemones legendarios es diferente a los no legendariosY determine con un nivel de significancia del 5% (es decir $\alpha$ = 0.05), si podemos rechazar o no las 3 hipótesis anteriores.  **SOLUCIÓN 3.1**<jupyter_code>df['Attack'].mean()
α = 0.05
stats.ttest_1samp(df['Attack'], popmean=77)
T,p=stats.ttest_1samp(df['Attack'], popmean=77)
p<α
p>α<jupyter_output><empty_output><jupyter_text>**Ya que P > α tenemos que retener $H_0$ y afirmamos que la diferencia no es estadísticamente significativa.** **Aplicamos la alternativa unilateral,Ha:μ>μ0  o  Ha:μ<μ0 .**<jupyter_code>T,p = stats.ttest_1samp(df['Attack'], popmean=77)
p_value = p/2
p_value
p_value<α
p_value>α<jupyter_output><empty_output><jupyter_text>**Podemos observar que ahora p_value<α por lo tanto debemos rechazar $H_0$ y debemos afirmar que la diferencia observada es estadisticamente significativa.** **SOLUCIÓN 3.2**<jupyter_code>dflg=df[['clasificacion of legendary','Attack']].groupby('clasificacion of legendary').mean()
round(dflg,4)
legendario=df[df['clasificacion of legendary']=='Legendario'].Attack
nlegendario=df[df['clasificacion of legendary']=='No Legendario'].Attack
statistic,pvaluele =stats.ttest_ind(legendario,nlegendario,equal_var=False)
statistic,pvaluele<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.13381147540983607, 'fraction_numerical': 0.025, 'mean_word_length': 8.072490706319703, 'pattern_counts': {'":': 0, '<': 44, '<?xml version=': 0, '>': 44, 'https://': 0, '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': '10', 'dir': 'jupyter-structured-clean-dedup', 'id': '103833', 'license': 'MIT', 'n_tokens_mistral': 1905, 'n_tokens_neox': 1827, 'n_words': 430, 'path': 'Taller_semana_5.ipynb', 'repo_name': 'geral98atehortua/Mujeres_Digitales', 'size': '4880'}