From 872307cd4732371ae6729062587e70185cc40c98 Mon Sep 17 00:00:00 2001 From: Alexandre Garanhao Date: Thu, 18 May 2023 15:24:50 +0100 Subject: [PATCH] lab done --- your-code/challenge-1.ipynb | 574 ++++++++++++++++++++++++++++++++++-- your-code/challenge-2.ipynb | 255 +++++++++++++++- 2 files changed, 789 insertions(+), 40 deletions(-) diff --git a/your-code/challenge-1.ipynb b/your-code/challenge-1.ipynb index c1bb43d..82d960f 100755 --- a/your-code/challenge-1.ipynb +++ b/your-code/challenge-1.ipynb @@ -1,6 +1,7 @@ { "cells": [ { + "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ @@ -19,15 +20,19 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "# Import libraries\n", - "import pandas as pd" + "import pandas as pd\n", + "import numpy as np\n", + "from scipy import stats\n", + "import scipy.stats as st" ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ @@ -38,14 +43,159 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
#NameType 1Type 2TotalHPAttackDefenseSp. AtkSp. DefSpeedGenerationLegendary
01BulbasaurGrassPoison3184549496565451False
12IvysaurGrassPoison4056062638080601False
23VenusaurGrassPoison525808283100100801False
33VenusaurMega VenusaurGrassPoison62580100123122120801False
44CharmanderFireNaN3093952436050651False
\n", + "
" + ], + "text/plain": [ + " # Name Type 1 Type 2 Total HP Attack Defense \n", + "0 1 Bulbasaur Grass Poison 318 45 49 49 \\\n", + "1 2 Ivysaur Grass Poison 405 60 62 63 \n", + "2 3 Venusaur Grass Poison 525 80 82 83 \n", + "3 3 VenusaurMega Venusaur Grass Poison 625 80 100 123 \n", + "4 4 Charmander Fire NaN 309 39 52 43 \n", + "\n", + " Sp. Atk Sp. Def Speed Generation Legendary \n", + "0 65 65 45 1 False \n", + "1 80 80 60 1 False \n", + "2 100 100 80 1 False \n", + "3 122 120 80 1 False \n", + "4 60 50 65 1 False " + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "# Your code here:\n" + "# Your code here:\n", + "pokemon=pd.read_csv(\"Pokemon.csv\")\n", + "pokemon.head()" ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ @@ -58,7 +208,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 24, "metadata": {}, "outputs": [], "source": [ @@ -76,11 +226,14 @@ " results = {}\n", "\n", " # Your code here\n", - " \n", + " for value in features:\n", + " stat, p_value = st.ttest_ind(s1[value], s2[value], equal_var=False)\n", + " results[value]=p_value\n", " return results" ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ @@ -101,14 +254,36 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 25, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "{'HP': 1.0026911708035284e-13,\n", + " 'Attack': 2.520372449236646e-16,\n", + " 'Defense': 4.826998494919331e-11,\n", + " 'Sp. Atk': 1.5514614112239816e-21,\n", + " 'Sp. Def': 2.2949327864052826e-15,\n", + " 'Speed': 1.0490163118824507e-18,\n", + " 'Total': 9.357954335957444e-47}" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "# Your code here\n" + "# Your code here\n", + "s1 = pokemon[pokemon[\"Legendary\"] == True]\n", + "s2 = pokemon[pokemon[\"Legendary\"] == False]\n", + "\n", + "t_test_features(s1, s2, features=['HP', 'Attack', 'Defense', 'Sp. Atk', 'Sp. Def', 'Speed', 'Total'])" ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ @@ -121,10 +296,12 @@ "metadata": {}, "outputs": [], "source": [ - "# Your comment here" + "# Your comment here\n", + "# Yes they have, using a significance of 0.05, we can refute the hypothesis that they have the same stats." ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ @@ -133,14 +310,36 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 32, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "{'HP': 1.0026911708035284e-13,\n", + " 'Attack': 2.520372449236646e-16,\n", + " 'Defense': 4.826998494919331e-11,\n", + " 'Sp. Atk': 1.5514614112239816e-21,\n", + " 'Sp. Def': 2.2949327864052826e-15,\n", + " 'Speed': 1.0490163118824507e-18,\n", + " 'Total': 9.357954335957444e-47}" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "# Your code here\n" + "# Your code here\n", + "s1 = pokemon[pokemon[\"Legendary\"] == True]\n", + "s2 = pokemon[pokemon[\"Legendary\"] == False]\n", + "\n", + "t_test_features(s1, s2, features=['HP', 'Attack', 'Defense', 'Sp. Atk', 'Sp. Def', 'Speed', 'Total'])" ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ @@ -153,10 +352,13 @@ "metadata": {}, "outputs": [], "source": [ - "# Your comment here" + "# Your comment here\n", + "\n", + "#We cannot say that the stats for the 2 generations are signifficaly differente" ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ @@ -165,14 +367,309 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 39, "metadata": {}, "outputs": [], "source": [ - "# Your code here\n" + "copy_pokemon = pokemon.copy()" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
#NameType 1Type 2TotalHPAttackDefenseSp. AtkSp. DefSpeedGenerationLegendary
01BulbasaurGrassPoison3184549496565451False
12IvysaurGrassPoison4056062638080601False
23VenusaurGrassPoison525808283100100801False
33VenusaurMega VenusaurGrassPoison62580100123122120801False
44CharmanderFire03093952436050651False
..........................................
795719DiancieRockFairy60050100150100150506True
796719DiancieMega DiancieRockFairy700501601101601101106True
797720HoopaHoopa ConfinedPsychicGhost6008011060150130706True
798720HoopaHoopa UnboundPsychicDark6808016060170130806True
799721VolcanionFireWater6008011012013090706True
\n", + "

800 rows × 13 columns

\n", + "
" + ], + "text/plain": [ + " # Name Type 1 Type 2 Total HP Attack Defense \n", + "0 1 Bulbasaur Grass Poison 318 45 49 49 \\\n", + "1 2 Ivysaur Grass Poison 405 60 62 63 \n", + "2 3 Venusaur Grass Poison 525 80 82 83 \n", + "3 3 VenusaurMega Venusaur Grass Poison 625 80 100 123 \n", + "4 4 Charmander Fire 0 309 39 52 43 \n", + ".. ... ... ... ... ... .. ... ... \n", + "795 719 Diancie Rock Fairy 600 50 100 150 \n", + "796 719 DiancieMega Diancie Rock Fairy 700 50 160 110 \n", + "797 720 HoopaHoopa Confined Psychic Ghost 600 80 110 60 \n", + "798 720 HoopaHoopa Unbound Psychic Dark 680 80 160 60 \n", + "799 721 Volcanion Fire Water 600 80 110 120 \n", + "\n", + " Sp. Atk Sp. Def Speed Generation Legendary \n", + "0 65 65 45 1 False \n", + "1 80 80 60 1 False \n", + "2 100 100 80 1 False \n", + "3 122 120 80 1 False \n", + "4 60 50 65 1 False \n", + ".. ... ... ... ... ... \n", + "795 100 150 50 6 True \n", + "796 160 110 110 6 True \n", + "797 150 130 70 6 True \n", + "798 170 130 80 6 True \n", + "799 130 90 70 6 True \n", + "\n", + "[800 rows x 13 columns]" + ] + }, + "execution_count": 51, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Your code here \n", + "copy_pokemon[\"Type 1\"] = copy_pokemon[\"Type 1\"].fillna(0)\n", + "copy_pokemon[\"Type 2\"] = copy_pokemon[\"Type 2\"].fillna(0)\n", + "copy_pokemon" ] }, { + "cell_type": "code", + "execution_count": 53, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'HP': 0.11314389855379413,\n", + " 'Attack': 0.00014932578145948305,\n", + " 'Defense': 2.7978540411514693e-08,\n", + " 'Sp. Atk': 0.00013876216585667907,\n", + " 'Sp. Def': 0.00010730610934512779,\n", + " 'Speed': 0.02421703281819093,\n", + " 'Total': 1.1157056505229964e-07}" + ] + }, + "execution_count": 53, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "s1 = copy_pokemon[(copy_pokemon[\"Type 1\"] == 0) | (copy_pokemon[\"Type 2\"] == 0)]\n", + "s2 = copy_pokemon[(copy_pokemon[\"Type 1\"]!=0) & (copy_pokemon[\"Type 2\"]!=0)]\n", + "\n", + "t_test_features(s1, s2, features=['HP', 'Attack', 'Defense', 'Sp. Atk', 'Sp. Def', 'Speed', 'Total'])" + ] + }, + { + "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ @@ -185,10 +682,12 @@ "metadata": {}, "outputs": [], "source": [ - "# Your comment here" + "# Your comment here\n", + "# we can assume that the two types apffects the hp of the pokemon" ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ @@ -199,14 +698,27 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 57, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "4.325566393330478\n", + "1.7140303479358558e-05\n" + ] + } + ], "source": [ - "# Your code here\n" + "# Your code here\n", + "stat1, p_value1 = st.ttest_rel(pokemon[\"Attack\"], pokemon[\"Defense\"], axis=0)\n", + "print(stat1)\n", + "print(p_value1)" ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ @@ -215,11 +727,23 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 56, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.853986188453353\n", + "0.3933685997548122\n" + ] + } + ], "source": [ - "# Your comment here" + "# Your comment here\n", + "stat2, p_value2 = st.ttest_rel(pokemon[\"Sp. Atk\"], pokemon[\"Sp. Def\"], axis=0)\n", + "print(stat2)\n", + "print(p_value2)" ] } ], @@ -239,7 +763,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.3" + "version": "3.11.2" } }, "nbformat": 4, diff --git a/your-code/challenge-2.ipynb b/your-code/challenge-2.ipynb index 1f0e335..1f599b1 100755 --- a/your-code/challenge-2.ipynb +++ b/your-code/challenge-2.ipynb @@ -1,6 +1,7 @@ { "cells": [ { + "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ @@ -17,24 +18,170 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 34, "metadata": {}, "outputs": [], "source": [ "# Import libraries\n", - "import pandas as pd" + "import pandas as pd\n", + "import scipy.stats as st" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
#NameType 1Type 2TotalHPAttackDefenseSp. AtkSp. DefSpeedGenerationLegendary
01BulbasaurGrassPoison3184549496565451False
12IvysaurGrassPoison4056062638080601False
23VenusaurGrassPoison525808283100100801False
33VenusaurMega VenusaurGrassPoison62580100123122120801False
44CharmanderFireNaN3093952436050651False
\n", + "
" + ], + "text/plain": [ + " # Name Type 1 Type 2 Total HP Attack Defense \n", + "0 1 Bulbasaur Grass Poison 318 45 49 49 \\\n", + "1 2 Ivysaur Grass Poison 405 60 62 63 \n", + "2 3 Venusaur Grass Poison 525 80 82 83 \n", + "3 3 VenusaurMega Venusaur Grass Poison 625 80 100 123 \n", + "4 4 Charmander Fire NaN 309 39 52 43 \n", + "\n", + " Sp. Atk Sp. Def Speed Generation Legendary \n", + "0 65 65 45 1 False \n", + "1 80 80 60 1 False \n", + "2 100 100 80 1 False \n", + "3 122 120 80 1 False \n", + "4 60 50 65 1 False " + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "# Load the data:\n" + "# Load the data:\n", + "pokemon =pd.read_csv(\"Pokemon.csv\")\n", + "pokemon.head()" ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ @@ -48,6 +195,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ @@ -58,17 +206,30 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "19" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Your code here\n", + "unique_types = pd.unique(pokemon[[\"Type 1\", \"Type 2\"]].values.ravel())\n", "\n", "\n", - "len(unique_types) # you should see 19" + "len(unique_types) # you should see 19\n" ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ @@ -85,11 +246,59 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 30, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "[26146,\n", + " 13818,\n", + " 17617,\n", + " 19510,\n", + " 7024,\n", + " 11244,\n", + " 23820,\n", + " 1940,\n", + " 14066,\n", + " 29480,\n", + " 14000,\n", + " 10403,\n", + " 39365,\n", + " 11176,\n", + " 27129,\n", + " 19965,\n", + " 13168,\n", + " 48211]" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "list(pokemon.groupby(\"Type 1\").agg({\"Total\":\"sum\"}).reset_index()[\"Total\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "18" + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "pokemon_totals = []\n", + "pokemon_totals = list(pokemon.groupby(\"Type 1\").agg({\"Total\":\"sum\"}).reset_index()[\"Total\"])\n", "\n", "# Your code here\n", "\n", @@ -97,6 +306,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ @@ -111,14 +321,29 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 37, "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "TypeError", + "evalue": "at least two inputs are required; got 1.", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[37], line 2\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[39m# Your code here\u001b[39;00m\n\u001b[1;32m----> 2\u001b[0m st\u001b[39m.\u001b[39;49mf_oneway(pokemon_totals)\n", + "File \u001b[1;32mc:\\Users\\Bruno Santos\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\scipy\\stats\\_stats_py.py:3843\u001b[0m, in \u001b[0;36mf_oneway\u001b[1;34m(axis, *samples)\u001b[0m\n\u001b[0;32m 3714\u001b[0m \u001b[39m\u001b[39m\u001b[39m\"\"\"Perform one-way ANOVA.\u001b[39;00m\n\u001b[0;32m 3715\u001b[0m \n\u001b[0;32m 3716\u001b[0m \u001b[39mThe one-way ANOVA tests the null hypothesis that two or more groups have\u001b[39;00m\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 3840\u001b[0m \n\u001b[0;32m 3841\u001b[0m \u001b[39m\"\"\"\u001b[39;00m\n\u001b[0;32m 3842\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mlen\u001b[39m(samples) \u001b[39m<\u001b[39m \u001b[39m2\u001b[39m:\n\u001b[1;32m-> 3843\u001b[0m \u001b[39mraise\u001b[39;00m \u001b[39mTypeError\u001b[39;00m(\u001b[39m'\u001b[39m\u001b[39mat least two inputs are required;\u001b[39m\u001b[39m'\u001b[39m\n\u001b[0;32m 3844\u001b[0m \u001b[39mf\u001b[39m\u001b[39m'\u001b[39m\u001b[39m got \u001b[39m\u001b[39m{\u001b[39;00m\u001b[39mlen\u001b[39m(samples)\u001b[39m}\u001b[39;00m\u001b[39m.\u001b[39m\u001b[39m'\u001b[39m)\n\u001b[0;32m 3846\u001b[0m samples \u001b[39m=\u001b[39m [np\u001b[39m.\u001b[39masarray(sample, dtype\u001b[39m=\u001b[39m\u001b[39mfloat\u001b[39m) \u001b[39mfor\u001b[39;00m sample \u001b[39min\u001b[39;00m samples]\n\u001b[0;32m 3848\u001b[0m \u001b[39m# ANOVA on N groups, each in its own array\u001b[39;00m\n", + "\u001b[1;31mTypeError\u001b[0m: at least two inputs are required; got 1." + ] + } + ], "source": [ - "# Your code here\n" + "# Your code here\n", + "st.f_oneway(pokemon_totals)" ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ @@ -151,7 +376,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.3" + "version": "3.11.2" } }, "nbformat": 4,