{ "cells": [ { "cell_type": "code", "execution_count": 1, "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", "
ranknamecountrymatchesmmrseason
01kolemoenDE43110484M2_01 Wolf 2020
12kams134PL92310477M2_01 Wolf 2020
23TailBotPL53810472M2_01 Wolf 2020
34PajabolPL82010471M2_01 Wolf 2020
45AdzikovPL110510442M2_01 Wolf 2020
.....................
1514790MagCCGRU4389M4_02 Love 2022
4114791可乐加冰.CN4386M4_02 Love 2022
10914792RomanTrooperRU4386M4_02 Love 2022
2014793NavelessDE4384M4_02 Love 2022
5514794PargaliPL196M4_02 Love 2022
\n", "

182799 rows × 6 columns

\n", "
" ], "text/plain": [ " rank name country matches mmr season\n", "0 1 kolemoen DE 431 10484 M2_01 Wolf 2020\n", "1 2 kams134 PL 923 10477 M2_01 Wolf 2020\n", "2 3 TailBot PL 538 10472 M2_01 Wolf 2020\n", "3 4 Pajabol PL 820 10471 M2_01 Wolf 2020\n", "4 5 Adzikov PL 1105 10442 M2_01 Wolf 2020\n", ".. ... ... ... ... ... ...\n", "15 14790 MagCCG RU 4 389 M4_02 Love 2022\n", "41 14791 可乐加冰. CN 4 386 M4_02 Love 2022\n", "109 14792 RomanTrooper RU 4 386 M4_02 Love 2022\n", "20 14793 Naveless DE 4 384 M4_02 Love 2022\n", "55 14794 Pargali PL 1 96 M4_02 Love 2022\n", "\n", "[182799 rows x 6 columns]" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" }, { "data": { "application/javascript": [ "\n", " setTimeout(function() {\n", " var nbb_cell_id = 1;\n", " var nbb_unformatted_code = \"%load_ext nb_black\\nimport pandas as pd\\nimport numpy as np\\nfrom os import listdir, path\\n\\noutput_path = \\\"./output\\\"\\n\\nplayers_df = (\\n pd.concat(\\n pd.read_excel(path.join(output_path, f))\\n for f in listdir(\\\"./output\\\")\\n if f.startswith(\\\"season_\\\")\\n )\\n .drop(columns=[\\\"Unnamed: 0\\\"])\\n .dropna()\\n).sort_values([\\\"season\\\", \\\"rank\\\"])\\nplayers_df\";\n", " var nbb_formatted_code = \"%load_ext nb_black\\nimport pandas as pd\\nimport numpy as np\\nfrom os import listdir, path\\n\\noutput_path = \\\"./output\\\"\\n\\nplayers_df = (\\n pd.concat(\\n pd.read_excel(path.join(output_path, f))\\n for f in listdir(\\\"./output\\\")\\n if f.startswith(\\\"season_\\\")\\n )\\n .drop(columns=[\\\"Unnamed: 0\\\"])\\n .dropna()\\n).sort_values([\\\"season\\\", \\\"rank\\\"])\\nplayers_df\";\n", " var nbb_cells = Jupyter.notebook.get_cells();\n", " for (var i = 0; i < nbb_cells.length; ++i) {\n", " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", " nbb_cells[i].set_text(nbb_formatted_code);\n", " }\n", " break;\n", " }\n", " }\n", " }, 500);\n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%load_ext nb_black\n", "import pandas as pd\n", "import numpy as np\n", "from os import listdir, path\n", "\n", "output_path = \"./output\"\n", "\n", "players_df = (\n", " pd.concat(\n", " pd.read_excel(path.join(output_path, f))\n", " for f in listdir(\"./output\")\n", " if f.startswith(\"season_\")\n", " )\n", " .drop(columns=[\"Unnamed: 0\"])\n", " .dropna()\n", ").sort_values([\"season\", \"rank\"])\n", "players_df" ] }, { "cell_type": "code", "execution_count": 2, "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", "
ranknamecountrymatchesmmrseason
20843259seproBE1429617M2_05 Viper 2020
11371138seproBE2549746M2_06 Magic 2020
11661167seproBE2609820M2_07 Griffin 2020
12541255seproBE2149779M2_08 Draconid 2020
223712816seproBE973360M2_09 Dryad 2020
10561057seproBE3519846M2_10 Cat 2020
16381639seproBE1549785M2_11 Mahakam 2020
251512856seproBE807407M2_12 Wild Hunt 2020
14661467seproBE1759724M3_01 Wolf 2021
679680seproBE4069903M3_02 Love 2021
17849353seproBE635384M3_03 Bear 2021
255314501seproBE402836M3_04 Elf 2021
\n", "
" ], "text/plain": [ " rank name country matches mmr season\n", "2084 3259 sepro BE 142 9617 M2_05 Viper 2020\n", "1137 1138 sepro BE 254 9746 M2_06 Magic 2020\n", "1166 1167 sepro BE 260 9820 M2_07 Griffin 2020\n", "1254 1255 sepro BE 214 9779 M2_08 Draconid 2020\n", "2237 12816 sepro BE 97 3360 M2_09 Dryad 2020\n", "1056 1057 sepro BE 351 9846 M2_10 Cat 2020\n", "1638 1639 sepro BE 154 9785 M2_11 Mahakam 2020\n", "2515 12856 sepro BE 80 7407 M2_12 Wild Hunt 2020\n", "1466 1467 sepro BE 175 9724 M3_01 Wolf 2021\n", "679 680 sepro BE 406 9903 M3_02 Love 2021\n", "1784 9353 sepro BE 63 5384 M3_03 Bear 2021\n", "2553 14501 sepro BE 40 2836 M3_04 Elf 2021" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" }, { "data": { "application/javascript": [ "\n", " setTimeout(function() {\n", " var nbb_cell_id = 2;\n", " var nbb_unformatted_code = \"players_df[players_df[\\\"name\\\"] == \\\"sepro\\\"]\";\n", " var nbb_formatted_code = \"players_df[players_df[\\\"name\\\"] == \\\"sepro\\\"]\";\n", " var nbb_cells = Jupyter.notebook.get_cells();\n", " for (var i = 0; i < nbb_cells.length; ++i) {\n", " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", " nbb_cells[i].set_text(nbb_formatted_code);\n", " }\n", " break;\n", " }\n", " }\n", " }, 500);\n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "players_df[players_df[\"name\"] == \"sepro\"]" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "application/javascript": [ "\n", " setTimeout(function() {\n", " var nbb_cell_id = 3;\n", " var nbb_unformatted_code = \"def sdi(data) -> float:\\n \\\"\\\"\\\"\\n Given a list of counts, calculate the Shannon Diversity Index\\n\\n :param data: list of integers\\n :return: Shannon Diversity Index\\n \\\"\\\"\\\"\\n\\n def p(n, N):\\n return n / N * np.log(n / N)\\n\\n x = np.array([d for d in data if d != 0])\\n\\n N = np.sum(x.astype(\\\"float64\\\"))\\n\\n if N == 0:\\n raise ZeroDivisionError(\\n \\\"Cannot calculate Shannon Diversity Index when the sum of all observations is zero\\\"\\n )\\n\\n return 0 - np.sum(np.array([p(n, N) for n in x]))\\n\\n\\ndef dominance(data) -> float:\\n N = np.sum(np.array(data).astype(\\\"float64\\\"))\\n\\n if N > 0:\\n proportions = data / N\\n\\n return np.sum(np.square(proportions))\\n else:\\n return np.nan\\n\\n\\ndef simpson(data) -> float:\\n d = dominance(data)\\n\\n if np.isnan(d):\\n return np.nan\\n else:\\n return 1 - d\";\n", " var nbb_formatted_code = \"def sdi(data) -> float:\\n \\\"\\\"\\\"\\n Given a list of counts, calculate the Shannon Diversity Index\\n\\n :param data: list of integers\\n :return: Shannon Diversity Index\\n \\\"\\\"\\\"\\n\\n def p(n, N):\\n return n / N * np.log(n / N)\\n\\n x = np.array([d for d in data if d != 0])\\n\\n N = np.sum(x.astype(\\\"float64\\\"))\\n\\n if N == 0:\\n raise ZeroDivisionError(\\n \\\"Cannot calculate Shannon Diversity Index when the sum of all observations is zero\\\"\\n )\\n\\n return 0 - np.sum(np.array([p(n, N) for n in x]))\\n\\n\\ndef dominance(data) -> float:\\n N = np.sum(np.array(data).astype(\\\"float64\\\"))\\n\\n if N > 0:\\n proportions = data / N\\n\\n return np.sum(np.square(proportions))\\n else:\\n return np.nan\\n\\n\\ndef simpson(data) -> float:\\n d = dominance(data)\\n\\n if np.isnan(d):\\n return np.nan\\n else:\\n return 1 - d\";\n", " var nbb_cells = Jupyter.notebook.get_cells();\n", " for (var i = 0; i < nbb_cells.length; ++i) {\n", " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", " nbb_cells[i].set_text(nbb_formatted_code);\n", " }\n", " break;\n", " }\n", " }\n", " }, 500);\n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "def sdi(data) -> float:\n", " \"\"\"\n", " Given a list of counts, calculate the Shannon Diversity Index\n", "\n", " :param data: list of integers\n", " :return: Shannon Diversity Index\n", " \"\"\"\n", "\n", " def p(n, N):\n", " return n / N * np.log(n / N)\n", "\n", " x = np.array([d for d in data if d != 0])\n", "\n", " N = np.sum(x.astype(\"float64\"))\n", "\n", " if N == 0:\n", " raise ZeroDivisionError(\n", " \"Cannot calculate Shannon Diversity Index when the sum of all observations is zero\"\n", " )\n", "\n", " return 0 - np.sum(np.array([p(n, N) for n in x]))\n", "\n", "\n", "def dominance(data) -> float:\n", " N = np.sum(np.array(data).astype(\"float64\"))\n", "\n", " if N > 0:\n", " proportions = data / N\n", "\n", " return np.sum(np.square(proportions))\n", " else:\n", " return np.nan\n", "\n", "\n", "def simpson(data) -> float:\n", " d = dominance(data)\n", "\n", " if np.isnan(d):\n", " return np.nan\n", " else:\n", " return 1 - d" ] }, { "cell_type": "code", "execution_count": 4, "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", "
seasoncountrycount
0M2_01 Wolf 2020AE1
1M2_01 Wolf 2020AM1
2M2_01 Wolf 2020AR4
3M2_01 Wolf 2020AT11
4M2_01 Wolf 2020AU20
............
2116M4_02 Love 2022US101
2117M4_02 Love 2022UZ3
2118M4_02 Love 2022VN6
2119M4_02 Love 2022ZA7
2120M4_02 Love 2022ZW1
\n", "

2121 rows × 3 columns

\n", "
" ], "text/plain": [ " season country count\n", "0 M2_01 Wolf 2020 AE 1\n", "1 M2_01 Wolf 2020 AM 1\n", "2 M2_01 Wolf 2020 AR 4\n", "3 M2_01 Wolf 2020 AT 11\n", "4 M2_01 Wolf 2020 AU 20\n", "... ... ... ...\n", "2116 M4_02 Love 2022 US 101\n", "2117 M4_02 Love 2022 UZ 3\n", "2118 M4_02 Love 2022 VN 6\n", "2119 M4_02 Love 2022 ZA 7\n", "2120 M4_02 Love 2022 ZW 1\n", "\n", "[2121 rows x 3 columns]" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" }, { "data": { "application/javascript": [ "\n", " setTimeout(function() {\n", " var nbb_cell_id = 4;\n", " var nbb_unformatted_code = \"season_country_df = (\\n players_df[players_df[\\\"rank\\\"] <= 2000]\\n .groupby([\\\"season\\\", \\\"country\\\"])\\n .agg(count=pd.NamedAgg(\\\"name\\\", \\\"count\\\"))\\n .reset_index()\\n)\\nseason_country_df\";\n", " var nbb_formatted_code = \"season_country_df = (\\n players_df[players_df[\\\"rank\\\"] <= 2000]\\n .groupby([\\\"season\\\", \\\"country\\\"])\\n .agg(count=pd.NamedAgg(\\\"name\\\", \\\"count\\\"))\\n .reset_index()\\n)\\nseason_country_df\";\n", " var nbb_cells = Jupyter.notebook.get_cells();\n", " for (var i = 0; i < nbb_cells.length; ++i) {\n", " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", " nbb_cells[i].set_text(nbb_formatted_code);\n", " }\n", " break;\n", " }\n", " }\n", " }, 500);\n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "season_country_df = (\n", " players_df[players_df[\"rank\"] <= 2000]\n", " .groupby([\"season\", \"country\"])\n", " .agg(count=pd.NamedAgg(\"name\", \"count\"))\n", " .reset_index()\n", ")\n", "season_country_df" ] }, { "cell_type": "code", "execution_count": 5, "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
seasonrichnessshannon_diversitydominancesimpson
0M2_01 Wolf 2020792.9114510.1097160.890284
1M2_02 Love 2020732.7849070.1245850.875415
2M2_03 Bear 2020742.7703970.1238290.876171
3M2_04 Elf 2020782.9216090.1052080.894792
4M2_05 Viper 2020822.9750210.1069550.893045
5M2_06 Magic 2020793.0282160.1004040.899596
6M2_07 Griffin 2020803.0856210.0923510.907649
7M2_08 Draconid 2020833.0435510.0972570.902743
8M2_09 Dryad 2020833.0710020.0936580.906342
9M2_10 Cat 2020823.0284270.1013740.898626
10M2_11 Mahakam 2020832.9816760.1109160.889084
11M2_12 Wild Hunt 2020763.0406270.0994880.900512
12M3_01 Wolf 2021863.0882990.0980810.901919
13M3_02 Love 2021843.0450430.1012610.898739
14M3_03 Bear 2021863.0868690.0905330.909467
15M3_04 Elf 2021833.1245640.0911770.908823
16M3_05 Viper 2021823.1472690.0861370.913863
17M3_06 Magic 2021823.1627250.0848160.915184
18M3_07 Griffin 2021843.0839370.0980900.901910
19M3_08 Draconid 2021823.0231760.1038060.896194
20M3_09 Dryad 2021863.0098230.1085510.891449
21M3_10 Cat 2021893.1328420.0918850.908115
22M3_11 Mahakam 2021822.9896440.1102780.889722
23M3_12 Wild Hunt 2021803.1014390.0928630.907137
24M4_01 Wolf 2022843.0126100.1128930.887107
25M4_02 Love 2022793.0305340.1041490.895851
\n", "
" ], "text/plain": [ " season richness shannon_diversity dominance simpson\n", "0 M2_01 Wolf 2020 79 2.911451 0.109716 0.890284\n", "1 M2_02 Love 2020 73 2.784907 0.124585 0.875415\n", "2 M2_03 Bear 2020 74 2.770397 0.123829 0.876171\n", "3 M2_04 Elf 2020 78 2.921609 0.105208 0.894792\n", "4 M2_05 Viper 2020 82 2.975021 0.106955 0.893045\n", "5 M2_06 Magic 2020 79 3.028216 0.100404 0.899596\n", "6 M2_07 Griffin 2020 80 3.085621 0.092351 0.907649\n", "7 M2_08 Draconid 2020 83 3.043551 0.097257 0.902743\n", "8 M2_09 Dryad 2020 83 3.071002 0.093658 0.906342\n", "9 M2_10 Cat 2020 82 3.028427 0.101374 0.898626\n", "10 M2_11 Mahakam 2020 83 2.981676 0.110916 0.889084\n", "11 M2_12 Wild Hunt 2020 76 3.040627 0.099488 0.900512\n", "12 M3_01 Wolf 2021 86 3.088299 0.098081 0.901919\n", "13 M3_02 Love 2021 84 3.045043 0.101261 0.898739\n", "14 M3_03 Bear 2021 86 3.086869 0.090533 0.909467\n", "15 M3_04 Elf 2021 83 3.124564 0.091177 0.908823\n", "16 M3_05 Viper 2021 82 3.147269 0.086137 0.913863\n", "17 M3_06 Magic 2021 82 3.162725 0.084816 0.915184\n", "18 M3_07 Griffin 2021 84 3.083937 0.098090 0.901910\n", "19 M3_08 Draconid 2021 82 3.023176 0.103806 0.896194\n", "20 M3_09 Dryad 2021 86 3.009823 0.108551 0.891449\n", "21 M3_10 Cat 2021 89 3.132842 0.091885 0.908115\n", "22 M3_11 Mahakam 2021 82 2.989644 0.110278 0.889722\n", "23 M3_12 Wild Hunt 2021 80 3.101439 0.092863 0.907137\n", "24 M4_01 Wolf 2022 84 3.012610 0.112893 0.887107\n", "25 M4_02 Love 2022 79 3.030534 0.104149 0.895851" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" }, { "data": { "application/javascript": [ "\n", " setTimeout(function() {\n", " var nbb_cell_id = 5;\n", " var nbb_unformatted_code = \"season_diversity_df = (\\n season_country_df.groupby([\\\"season\\\"])\\n .agg(\\n richness=pd.NamedAgg(\\\"count\\\", \\\"count\\\"),\\n shannon_diversity=pd.NamedAgg(\\\"count\\\", sdi),\\n dominance=pd.NamedAgg(\\\"count\\\", dominance),\\n simpson=pd.NamedAgg(\\\"count\\\", simpson),\\n )\\n .reset_index()\\n)\\nseason_diversity_df.set_index(\\\"season\\\").to_excel(\\n \\\"./output/seasonal_diversity_of_nations.xlsx\\\"\\n)\\nseason_diversity_df\";\n", " var nbb_formatted_code = \"season_diversity_df = (\\n season_country_df.groupby([\\\"season\\\"])\\n .agg(\\n richness=pd.NamedAgg(\\\"count\\\", \\\"count\\\"),\\n shannon_diversity=pd.NamedAgg(\\\"count\\\", sdi),\\n dominance=pd.NamedAgg(\\\"count\\\", dominance),\\n simpson=pd.NamedAgg(\\\"count\\\", simpson),\\n )\\n .reset_index()\\n)\\nseason_diversity_df.set_index(\\\"season\\\").to_excel(\\n \\\"./output/seasonal_diversity_of_nations.xlsx\\\"\\n)\\nseason_diversity_df\";\n", " var nbb_cells = Jupyter.notebook.get_cells();\n", " for (var i = 0; i < nbb_cells.length; ++i) {\n", " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", " nbb_cells[i].set_text(nbb_formatted_code);\n", " }\n", " break;\n", " }\n", " }\n", " }, 500);\n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "season_diversity_df = (\n", " season_country_df.groupby([\"season\"])\n", " .agg(\n", " richness=pd.NamedAgg(\"count\", \"count\"),\n", " shannon_diversity=pd.NamedAgg(\"count\", sdi),\n", " dominance=pd.NamedAgg(\"count\", dominance),\n", " simpson=pd.NamedAgg(\"count\", simpson),\n", " )\n", " .reset_index()\n", ")\n", "season_diversity_df.set_index(\"season\").to_excel(\n", " \"./output/seasonal_diversity_of_nations.xlsx\"\n", ")\n", "season_diversity_df" ] }, { "cell_type": "code", "execution_count": 6, "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
seasonplayers_foundplayers_totalplayers_capturedextra_players_captured
0M2_01 Wolf 20202905299796.93026432.846715
1M2_02 Love 20203984488381.58918755.561048
2M2_03 Bear 20204772663271.95416250.689290
3M2_04 Elf 202060701020959.45734243.679412
4M2_05 Viper 202059771007959.30151843.177725
5M2_06 Magic 20206104991961.53846245.955518
6M2_07 Griffin 202073721479149.84112037.817450
7M2_08 Draconid 202070371380050.99275438.180987
8M2_09 Dryad 202070561455448.48151735.881649
9M2_10 Cat 202069871601143.63874831.381644
10M2_11 Mahakam 202066441675239.66093627.238699
11M2_12 Wild Hunt 202078062246434.74893225.229545
12M3_01 Wolf 202161971342846.14983631.576457
13M3_02 Love 202171191601644.44930132.373062
14M3_03 Bear 202170121363651.42270538.530067
15M3_04 Elf 2021101071604962.97588654.947305
16M3_05 Viper 202177711762344.09578433.265596
17M3_06 Magic 2021108991744262.48710055.129612
18M3_07 Griffin 202177711677246.33317435.300460
19M3_08 Draconid 202183331752347.55464237.325240
20M3_09 Dryad 202175611748643.24030732.141392
21M3_10 Cat 202180231404857.11133346.147658
22M3_11 Mahakam 202191471990245.96020536.891210
23M3_12 Wild Hunt 202195662165144.18271735.687297
24M4_01 Wolf 202276071552049.01417537.496051
25M4_02 Love 202229721479420.0892250.938495
\n", "
" ], "text/plain": [ " season players_found players_total players_captured \\\n", "0 M2_01 Wolf 2020 2905 2997 96.930264 \n", "1 M2_02 Love 2020 3984 4883 81.589187 \n", "2 M2_03 Bear 2020 4772 6632 71.954162 \n", "3 M2_04 Elf 2020 6070 10209 59.457342 \n", "4 M2_05 Viper 2020 5977 10079 59.301518 \n", "5 M2_06 Magic 2020 6104 9919 61.538462 \n", "6 M2_07 Griffin 2020 7372 14791 49.841120 \n", "7 M2_08 Draconid 2020 7037 13800 50.992754 \n", "8 M2_09 Dryad 2020 7056 14554 48.481517 \n", "9 M2_10 Cat 2020 6987 16011 43.638748 \n", "10 M2_11 Mahakam 2020 6644 16752 39.660936 \n", "11 M2_12 Wild Hunt 2020 7806 22464 34.748932 \n", "12 M3_01 Wolf 2021 6197 13428 46.149836 \n", "13 M3_02 Love 2021 7119 16016 44.449301 \n", "14 M3_03 Bear 2021 7012 13636 51.422705 \n", "15 M3_04 Elf 2021 10107 16049 62.975886 \n", "16 M3_05 Viper 2021 7771 17623 44.095784 \n", "17 M3_06 Magic 2021 10899 17442 62.487100 \n", "18 M3_07 Griffin 2021 7771 16772 46.333174 \n", "19 M3_08 Draconid 2021 8333 17523 47.554642 \n", "20 M3_09 Dryad 2021 7561 17486 43.240307 \n", "21 M3_10 Cat 2021 8023 14048 57.111333 \n", "22 M3_11 Mahakam 2021 9147 19902 45.960205 \n", "23 M3_12 Wild Hunt 2021 9566 21651 44.182717 \n", "24 M4_01 Wolf 2022 7607 15520 49.014175 \n", "25 M4_02 Love 2022 2972 14794 20.089225 \n", "\n", " extra_players_captured \n", "0 32.846715 \n", "1 55.561048 \n", "2 50.689290 \n", "3 43.679412 \n", "4 43.177725 \n", "5 45.955518 \n", "6 37.817450 \n", "7 38.180987 \n", "8 35.881649 \n", "9 31.381644 \n", "10 27.238699 \n", "11 25.229545 \n", "12 31.576457 \n", "13 32.373062 \n", "14 38.530067 \n", "15 54.947305 \n", "16 33.265596 \n", "17 55.129612 \n", "18 35.300460 \n", "19 37.325240 \n", "20 32.141392 \n", "21 46.147658 \n", "22 36.891210 \n", "23 35.687297 \n", "24 37.496051 \n", "25 0.938495 " ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" }, { "data": { "application/javascript": [ "\n", " setTimeout(function() {\n", " var nbb_cell_id = 6;\n", " var nbb_unformatted_code = \"summary_df = (\\n players_df.groupby([\\\"season\\\"])\\n .agg(\\n players_found=pd.NamedAgg(\\\"name\\\", \\\"count\\\"),\\n players_total=pd.NamedAgg(\\\"rank\\\", \\\"max\\\"),\\n )\\n .reset_index()\\n)\\n\\nsummary_df[\\\"players_captured\\\"] = (\\n summary_df[\\\"players_found\\\"] * 100 / summary_df[\\\"players_total\\\"]\\n)\\nsummary_df[\\\"extra_players_captured\\\"] = (\\n (summary_df[\\\"players_found\\\"] - 2860) * 100 / (summary_df[\\\"players_total\\\"] - 2860)\\n)\\nsummary_df.set_index(\\\"season\\\").to_excel(\\\"./output/seasonal_player_counts.xlsx\\\")\\nsummary_df\";\n", " var nbb_formatted_code = \"summary_df = (\\n players_df.groupby([\\\"season\\\"])\\n .agg(\\n players_found=pd.NamedAgg(\\\"name\\\", \\\"count\\\"),\\n players_total=pd.NamedAgg(\\\"rank\\\", \\\"max\\\"),\\n )\\n .reset_index()\\n)\\n\\nsummary_df[\\\"players_captured\\\"] = (\\n summary_df[\\\"players_found\\\"] * 100 / summary_df[\\\"players_total\\\"]\\n)\\nsummary_df[\\\"extra_players_captured\\\"] = (\\n (summary_df[\\\"players_found\\\"] - 2860) * 100 / (summary_df[\\\"players_total\\\"] - 2860)\\n)\\nsummary_df.set_index(\\\"season\\\").to_excel(\\\"./output/seasonal_player_counts.xlsx\\\")\\nsummary_df\";\n", " var nbb_cells = Jupyter.notebook.get_cells();\n", " for (var i = 0; i < nbb_cells.length; ++i) {\n", " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", " nbb_cells[i].set_text(nbb_formatted_code);\n", " }\n", " break;\n", " }\n", " }\n", " }, 500);\n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "summary_df = (\n", " players_df.groupby([\"season\"])\n", " .agg(\n", " players_found=pd.NamedAgg(\"name\", \"count\"),\n", " players_total=pd.NamedAgg(\"rank\", \"max\"),\n", " )\n", " .reset_index()\n", ")\n", "\n", "summary_df[\"players_captured\"] = (\n", " summary_df[\"players_found\"] * 100 / summary_df[\"players_total\"]\n", ")\n", "summary_df[\"extra_players_captured\"] = (\n", " (summary_df[\"players_found\"] - 2860) * 100 / (summary_df[\"players_total\"] - 2860)\n", ")\n", "summary_df.set_index(\"season\").to_excel(\"./output/seasonal_player_counts.xlsx\")\n", "summary_df" ] }, { "cell_type": "code", "execution_count": 7, "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
seasonplayers_foundplayers_totalplayers_capturedextra_players_capturedrichnessshannon_diversitydominancesimpsontop500_cutofftop200_cutofftop64_cutofflow_estimatehigh_estimatemean_estimatestd_err
0M2_01 Wolf 20202905299796.93026432.846715792.9114510.1097160.89028497499872100612900.0000003600.03117.636364124.944153
1M2_02 Love 20203984488381.58918755.561048732.7849070.1245850.87541598329952101174566.6666677100.05620.242424441.315936
2M2_03 Bear 20204772663271.95416250.689290742.7703970.1238290.87617198679995102046036.36363610300.07329.272727760.229978
3M2_04 Elf 202060701020959.45734243.679412782.9216090.1052080.894792995210087102939927.27272718000.012319.4545451494.370140
4M2_05 Viper 202059771007959.30151843.177725822.9750210.1069550.893045991010028102557766.66666711400.09372.060606727.332197
5M2_06 Magic 20206104991961.53846245.955518793.0282160.1004040.899596989610002101916800.0000009800.08320.181818618.201230
6M2_07 Griffin 202073721479149.84112037.817450803.0856210.0923510.9076499978101001028912836.36363619900.014683.2727271331.618216
7M2_08 Draconid 202070371380050.99275438.180987833.0435510.0972570.902743994610061102469566.66666713300.011186.242424696.853229
8M2_09 Dryad 202070561455448.48151735.881649833.0710020.0936580.906342994610046101839733.33333312580.011218.666667458.757501
9M2_10 Cat 202069871601143.63874831.381644823.0284270.1013740.8986269977100671017612800.00000014620.013774.181818369.275995
10M2_11 Mahakam 202066441675239.66093627.238699832.9816760.1109160.88908410000100901021612995.45454518900.016041.757576976.287680
11M2_12 Wild Hunt 202078062246434.74893225.229545763.0406270.0994880.90051210070101721031312995.45454535900.023051.7575763678.743988
12M3_01 Wolf 202161971342846.14983631.576457863.0882990.0980810.901919991610044102957968.18181813700.09929.6363641046.105394
13M3_02 Love 202171191601644.44930132.373062843.0450430.1012610.8987399975100971032511645.45454519500.013977.7575761430.087791
14M3_03 Bear 202170121363651.42270538.530067863.0868690.0905330.909467991410026102307466.66666710900.09195.333333715.137594
15M3_04 Elf 2021101071604962.97588654.947305833.1245640.0911770.9088239992101021032311586.36363620300.014814.6060611527.809485
16M3_05 Viper 202177711762344.09578433.265596823.1472690.0861370.9138639998101061030012990.90909120900.016159.5151521322.547676
17M3_06 Magic 2021108991744262.48710055.129612823.1627250.0848160.9151849974100821027811263.63636417200.013526.0606061034.558786
18M3_07 Griffin 202177711677246.33317435.300460843.0839370.0980900.9019109958100671028710140.90909115800.012241.5151521040.267969
19M3_08 Draconid 202183331752347.55464237.325240823.0231760.1038060.8961949954100791028111200.00000016900.012854.5454551051.176279
20M3_09 Dryad 202175611748643.24030732.141392863.0098230.1085510.8914499968100781025011868.18181815900.013442.969697746.264455
21M3_10 Cat 202180231404857.11133346.147658893.1328420.0918850.90811598799974100835100.0000007770.06559.939394575.186402
22M3_11 Mahakam 202191471990245.96020536.891210822.9896440.1102780.88972210012101221025212981.81818223300.017920.3636361647.708090
23M3_12 Wild Hunt 202195662165144.18271735.687297803.1014390.0928630.90713710032101401027112981.81818227500.019567.6969702331.781053
24M4_01 Wolf 202276071552049.01417537.496051843.0126100.1128930.887107994110093103408690.90909118900.012063.5151521789.893240
25M4_02 Love 202229721479420.0892250.938495793.0305340.1041490.89585199321006810312NaNNaNNaNNaN
\n", "
" ], "text/plain": [ " season players_found players_total players_captured \\\n", "0 M2_01 Wolf 2020 2905 2997 96.930264 \n", "1 M2_02 Love 2020 3984 4883 81.589187 \n", "2 M2_03 Bear 2020 4772 6632 71.954162 \n", "3 M2_04 Elf 2020 6070 10209 59.457342 \n", "4 M2_05 Viper 2020 5977 10079 59.301518 \n", "5 M2_06 Magic 2020 6104 9919 61.538462 \n", "6 M2_07 Griffin 2020 7372 14791 49.841120 \n", "7 M2_08 Draconid 2020 7037 13800 50.992754 \n", "8 M2_09 Dryad 2020 7056 14554 48.481517 \n", "9 M2_10 Cat 2020 6987 16011 43.638748 \n", "10 M2_11 Mahakam 2020 6644 16752 39.660936 \n", "11 M2_12 Wild Hunt 2020 7806 22464 34.748932 \n", "12 M3_01 Wolf 2021 6197 13428 46.149836 \n", "13 M3_02 Love 2021 7119 16016 44.449301 \n", "14 M3_03 Bear 2021 7012 13636 51.422705 \n", "15 M3_04 Elf 2021 10107 16049 62.975886 \n", "16 M3_05 Viper 2021 7771 17623 44.095784 \n", "17 M3_06 Magic 2021 10899 17442 62.487100 \n", "18 M3_07 Griffin 2021 7771 16772 46.333174 \n", "19 M3_08 Draconid 2021 8333 17523 47.554642 \n", "20 M3_09 Dryad 2021 7561 17486 43.240307 \n", "21 M3_10 Cat 2021 8023 14048 57.111333 \n", "22 M3_11 Mahakam 2021 9147 19902 45.960205 \n", "23 M3_12 Wild Hunt 2021 9566 21651 44.182717 \n", "24 M4_01 Wolf 2022 7607 15520 49.014175 \n", "25 M4_02 Love 2022 2972 14794 20.089225 \n", "\n", " extra_players_captured richness shannon_diversity dominance simpson \\\n", "0 32.846715 79 2.911451 0.109716 0.890284 \n", "1 55.561048 73 2.784907 0.124585 0.875415 \n", "2 50.689290 74 2.770397 0.123829 0.876171 \n", "3 43.679412 78 2.921609 0.105208 0.894792 \n", "4 43.177725 82 2.975021 0.106955 0.893045 \n", "5 45.955518 79 3.028216 0.100404 0.899596 \n", "6 37.817450 80 3.085621 0.092351 0.907649 \n", "7 38.180987 83 3.043551 0.097257 0.902743 \n", "8 35.881649 83 3.071002 0.093658 0.906342 \n", "9 31.381644 82 3.028427 0.101374 0.898626 \n", "10 27.238699 83 2.981676 0.110916 0.889084 \n", "11 25.229545 76 3.040627 0.099488 0.900512 \n", "12 31.576457 86 3.088299 0.098081 0.901919 \n", "13 32.373062 84 3.045043 0.101261 0.898739 \n", "14 38.530067 86 3.086869 0.090533 0.909467 \n", "15 54.947305 83 3.124564 0.091177 0.908823 \n", "16 33.265596 82 3.147269 0.086137 0.913863 \n", "17 55.129612 82 3.162725 0.084816 0.915184 \n", "18 35.300460 84 3.083937 0.098090 0.901910 \n", "19 37.325240 82 3.023176 0.103806 0.896194 \n", "20 32.141392 86 3.009823 0.108551 0.891449 \n", "21 46.147658 89 3.132842 0.091885 0.908115 \n", "22 36.891210 82 2.989644 0.110278 0.889722 \n", "23 35.687297 80 3.101439 0.092863 0.907137 \n", "24 37.496051 84 3.012610 0.112893 0.887107 \n", "25 0.938495 79 3.030534 0.104149 0.895851 \n", "\n", " top500_cutoff top200_cutoff top64_cutoff low_estimate high_estimate \\\n", "0 9749 9872 10061 2900.000000 3600.0 \n", "1 9832 9952 10117 4566.666667 7100.0 \n", "2 9867 9995 10204 6036.363636 10300.0 \n", "3 9952 10087 10293 9927.272727 18000.0 \n", "4 9910 10028 10255 7766.666667 11400.0 \n", "5 9896 10002 10191 6800.000000 9800.0 \n", "6 9978 10100 10289 12836.363636 19900.0 \n", "7 9946 10061 10246 9566.666667 13300.0 \n", "8 9946 10046 10183 9733.333333 12580.0 \n", "9 9977 10067 10176 12800.000000 14620.0 \n", "10 10000 10090 10216 12995.454545 18900.0 \n", "11 10070 10172 10313 12995.454545 35900.0 \n", "12 9916 10044 10295 7968.181818 13700.0 \n", "13 9975 10097 10325 11645.454545 19500.0 \n", "14 9914 10026 10230 7466.666667 10900.0 \n", "15 9992 10102 10323 11586.363636 20300.0 \n", "16 9998 10106 10300 12990.909091 20900.0 \n", "17 9974 10082 10278 11263.636364 17200.0 \n", "18 9958 10067 10287 10140.909091 15800.0 \n", "19 9954 10079 10281 11200.000000 16900.0 \n", "20 9968 10078 10250 11868.181818 15900.0 \n", "21 9879 9974 10083 5100.000000 7770.0 \n", "22 10012 10122 10252 12981.818182 23300.0 \n", "23 10032 10140 10271 12981.818182 27500.0 \n", "24 9941 10093 10340 8690.909091 18900.0 \n", "25 9932 10068 10312 NaN NaN \n", "\n", " mean_estimate std_err \n", "0 3117.636364 124.944153 \n", "1 5620.242424 441.315936 \n", "2 7329.272727 760.229978 \n", "3 12319.454545 1494.370140 \n", "4 9372.060606 727.332197 \n", "5 8320.181818 618.201230 \n", "6 14683.272727 1331.618216 \n", "7 11186.242424 696.853229 \n", "8 11218.666667 458.757501 \n", "9 13774.181818 369.275995 \n", "10 16041.757576 976.287680 \n", "11 23051.757576 3678.743988 \n", "12 9929.636364 1046.105394 \n", "13 13977.757576 1430.087791 \n", "14 9195.333333 715.137594 \n", "15 14814.606061 1527.809485 \n", "16 16159.515152 1322.547676 \n", "17 13526.060606 1034.558786 \n", "18 12241.515152 1040.267969 \n", "19 12854.545455 1051.176279 \n", "20 13442.969697 746.264455 \n", "21 6559.939394 575.186402 \n", "22 17920.363636 1647.708090 \n", "23 19567.696970 2331.781053 \n", "24 12063.515152 1789.893240 \n", "25 NaN NaN " ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" }, { "data": { "application/javascript": [ "\n", " setTimeout(function() {\n", " var nbb_cell_id = 7;\n", " var nbb_unformatted_code = \"season_df = pd.read_excel(\\\"./output/seasonal_stats.xlsx\\\").drop(\\n columns=[\\\"Unnamed: 0\\\", \\\"min_mmr\\\", \\\"max_mmr\\\", \\\"num_matches\\\"]\\n)\\nestimates_df = pd.read_excel(\\\"./output/player_estimates.xlsx\\\").drop(\\n columns=[\\\"Unnamed: 0\\\"]\\n)\\nmerged_df = pd.merge(summary_df, season_diversity_df, how=\\\"left\\\", on=\\\"season\\\")\\nmerged_df = pd.merge(merged_df, season_df, how=\\\"left\\\", on=\\\"season\\\")\\nmerged_df = pd.merge(merged_df, estimates_df, how=\\\"left\\\", on=\\\"season\\\")\\nmerged_df\";\n", " var nbb_formatted_code = \"season_df = pd.read_excel(\\\"./output/seasonal_stats.xlsx\\\").drop(\\n columns=[\\\"Unnamed: 0\\\", \\\"min_mmr\\\", \\\"max_mmr\\\", \\\"num_matches\\\"]\\n)\\nestimates_df = pd.read_excel(\\\"./output/player_estimates.xlsx\\\").drop(\\n columns=[\\\"Unnamed: 0\\\"]\\n)\\nmerged_df = pd.merge(summary_df, season_diversity_df, how=\\\"left\\\", on=\\\"season\\\")\\nmerged_df = pd.merge(merged_df, season_df, how=\\\"left\\\", on=\\\"season\\\")\\nmerged_df = pd.merge(merged_df, estimates_df, how=\\\"left\\\", on=\\\"season\\\")\\nmerged_df\";\n", " var nbb_cells = Jupyter.notebook.get_cells();\n", " for (var i = 0; i < nbb_cells.length; ++i) {\n", " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", " nbb_cells[i].set_text(nbb_formatted_code);\n", " }\n", " break;\n", " }\n", " }\n", " }, 500);\n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "season_df = pd.read_excel(\"./output/seasonal_stats.xlsx\").drop(\n", " columns=[\"Unnamed: 0\", \"min_mmr\", \"max_mmr\", \"num_matches\"]\n", ")\n", "estimates_df = pd.read_excel(\"./output/player_estimates.xlsx\").drop(\n", " columns=[\"Unnamed: 0\"]\n", ")\n", "merged_df = pd.merge(summary_df, season_diversity_df, how=\"left\", on=\"season\")\n", "merged_df = pd.merge(merged_df, season_df, how=\"left\", on=\"season\")\n", "merged_df = pd.merge(merged_df, estimates_df, how=\"left\", on=\"season\")\n", "merged_df" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "application/javascript": [ "\n", " setTimeout(function() {\n", " var nbb_cell_id = 8;\n", " var nbb_unformatted_code = \"merged_df[\\\"series\\\"] = merged_df.season.apply(lambda x: x.split(\\\"_\\\")[0])\";\n", " var nbb_formatted_code = \"merged_df[\\\"series\\\"] = merged_df.season.apply(lambda x: x.split(\\\"_\\\")[0])\";\n", " var nbb_cells = Jupyter.notebook.get_cells();\n", " for (var i = 0; i < nbb_cells.length; ++i) {\n", " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", " nbb_cells[i].set_text(nbb_formatted_code);\n", " }\n", " break;\n", " }\n", " }\n", " }, 500);\n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "merged_df[\"series\"] = merged_df.season.apply(lambda x: x.split(\"_\")[0])" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "application/javascript": [ "\n", " setTimeout(function() {\n", " var nbb_cell_id = 9;\n", " var nbb_unformatted_code = \"import seaborn as sns\\nimport matplotlib.pyplot as plt\\n\\n\\nsns.regplot(\\n data=merged_df, x=\\\"players_total\\\", y=\\\"mean_estimate\\\", scatter=False, color=\\\".25\\\"\\n)\\nsns.scatterplot(data=merged_df, x=\\\"players_total\\\", y=\\\"mean_estimate\\\", hue=\\\"series\\\")\\nplt.title(\\\"Actual Players vs Estimated\\\")\\nplt.xlabel(\\\"Number of Players\\\")\\nplt.ylabel(\\\"Estimated Players\\\")\\nplt.xlim(2500, 23000)\\nplt.show()\";\n", " var nbb_formatted_code = \"import seaborn as sns\\nimport matplotlib.pyplot as plt\\n\\n\\nsns.regplot(\\n data=merged_df, x=\\\"players_total\\\", y=\\\"mean_estimate\\\", scatter=False, color=\\\".25\\\"\\n)\\nsns.scatterplot(data=merged_df, x=\\\"players_total\\\", y=\\\"mean_estimate\\\", hue=\\\"series\\\")\\nplt.title(\\\"Actual Players vs Estimated\\\")\\nplt.xlabel(\\\"Number of Players\\\")\\nplt.ylabel(\\\"Estimated Players\\\")\\nplt.xlim(2500, 23000)\\nplt.show()\";\n", " var nbb_cells = Jupyter.notebook.get_cells();\n", " for (var i = 0; i < nbb_cells.length; ++i) {\n", " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", " nbb_cells[i].set_text(nbb_formatted_code);\n", " }\n", " break;\n", " }\n", " }\n", " }, 500);\n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import seaborn as sns\n", "import matplotlib.pyplot as plt\n", "\n", "\n", "sns.regplot(\n", " data=merged_df, x=\"players_total\", y=\"mean_estimate\", scatter=False, color=\".25\"\n", ")\n", "sns.scatterplot(data=merged_df, x=\"players_total\", y=\"mean_estimate\", hue=\"series\")\n", "plt.title(\"Actual Players vs Estimated\")\n", "plt.xlabel(\"Number of Players\")\n", "plt.ylabel(\"Estimated Players\")\n", "plt.xlim(2500, 23000)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "application/javascript": [ "\n", " setTimeout(function() {\n", " var nbb_cell_id = 10;\n", " var nbb_unformatted_code = \"import seaborn as sns\\nimport matplotlib.pyplot as plt\\n\\nsns.regplot(\\n data=merged_df, x=\\\"players_total\\\", y=\\\"shannon_diversity\\\", scatter=False, color=\\\".25\\\"\\n)\\nsns.scatterplot(data=merged_df, x=\\\"players_total\\\", y=\\\"shannon_diversity\\\", hue=\\\"series\\\")\\nplt.title(\\\"Actual Players vs Diversity\\\")\\nplt.xlabel(\\\"Number of Players\\\")\\nplt.ylabel(\\\"Shannon Diversity\\\")\\nplt.xlim(2500, 23000)\\nplt.show()\";\n", " var nbb_formatted_code = \"import seaborn as sns\\nimport matplotlib.pyplot as plt\\n\\nsns.regplot(\\n data=merged_df, x=\\\"players_total\\\", y=\\\"shannon_diversity\\\", scatter=False, color=\\\".25\\\"\\n)\\nsns.scatterplot(data=merged_df, x=\\\"players_total\\\", y=\\\"shannon_diversity\\\", hue=\\\"series\\\")\\nplt.title(\\\"Actual Players vs Diversity\\\")\\nplt.xlabel(\\\"Number of Players\\\")\\nplt.ylabel(\\\"Shannon Diversity\\\")\\nplt.xlim(2500, 23000)\\nplt.show()\";\n", " var nbb_cells = Jupyter.notebook.get_cells();\n", " for (var i = 0; i < nbb_cells.length; ++i) {\n", " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", " nbb_cells[i].set_text(nbb_formatted_code);\n", " }\n", " break;\n", " }\n", " }\n", " }, 500);\n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import seaborn as sns\n", "import matplotlib.pyplot as plt\n", "\n", "sns.regplot(\n", " data=merged_df, x=\"players_total\", y=\"shannon_diversity\", scatter=False, color=\".25\"\n", ")\n", "sns.scatterplot(data=merged_df, x=\"players_total\", y=\"shannon_diversity\", hue=\"series\")\n", "plt.title(\"Actual Players vs Diversity\")\n", "plt.xlabel(\"Number of Players\")\n", "plt.ylabel(\"Shannon Diversity\")\n", "plt.xlim(2500, 23000)\n", "plt.show()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.6" } }, "nbformat": 4, "nbformat_minor": 4 }