Skip to content

Instantly share code, notes, and snippets.

@msmol
Last active August 29, 2015 13:59
Show Gist options
  • Save msmol/10474581 to your computer and use it in GitHub Desktop.
Save msmol/10474581 to your computer and use it in GitHub Desktop.
HaFHL Stats End of Season Update
Display the source blob
Display the rendered blob
Raw
{
"metadata": {
"name": "HaFHL Stats v2"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "heading",
"level": 1,
"metadata": {},
"source": [
"HaFHL Stats"
]
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Preamble"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"A while ago I made an IPython Notebook going over some stats for my Fantasy Hockey league. That was midseason, and as the season officially ended yesterday, I thought an update would be nice. I'll also try to make the code a bit nicer this time by not reinventing the wheel and using some standard Python data analysis tools (ahem, pandas)"
]
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Parsing the CSV Data"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here's the data as a raw CSV string again. This time instead of putting it in our custom data structure, we're going to put it into a pandas DataFrame"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import csv\n",
"import StringIO\n",
"from pandas import DataFrame\n",
"\n",
"import pandas as pd\n",
"\n",
"pd.set_option(\"display.max_columns\", 800)\n",
"pd.set_option(\"display.width\", 1000)\n",
"\n",
"csv_data = \"\"\"Player,G,A,+/-,PIM,PPP,SOG,W,GAA,SV%,SHO\n",
"Dwayne Gretskeet,324,407,47,677,229,2911,83,2.44,0.92,13\n",
"the favorites,304,362,196,711,157,2661,67,2.28,0.917,13\n",
"Mikhail's Team,296,367,82,490,205,2535,40,2.68,0.911,5\n",
"Pmoda,274,425,-7,646,217,2830,63,2.38,0.912,7\n",
"South Park Cows,264,407,72,548,208,2484,74,2.51,0.92,7\n",
"JoshHum,249,460,-38,629,218,2679,47,2.85,0.917,4\n",
"Matthew's Team,227,361,27,550,202,2232,19,3.2,0.894,3\n",
"Pika Pikachus,226,409,53,333,218,2159,45,2.56,0.915,3\n",
"BenDover,213,380,103,521,164,2021,42,2.4,0.913,2\n",
"Fresh Baked Brownies,199,353,25,544,162,2112,41,2.17,0.921,8\n",
"First Place,196,425,-61,486,211,2074,59,2.44,0.915,9\n",
"EWeb FTW,177,334,-41,333,137,1712,47,2.5,0.907,8\n",
"HERRO. THIS IS DOG,174,311,59,562,155,1822,34,3.15,0.903,2\n",
"Team Leaddz,157,278,-11,463,127,1734,29,2.58,0.91,6\"\"\"\n",
"\n",
"f = StringIO.StringIO(csv_data)\n",
"reader = csv.DictReader(f)\n",
"\n",
"def parse_val(val):\n",
" ret_val = None\n",
" try:\n",
" ret_val = int(val)\n",
" except ValueError:\n",
" try:\n",
" ret_val = float(val)\n",
" except ValueError:\n",
" ret_val = val\n",
" return ret_val\n",
"\n",
"player_data = DataFrame([[parse_val(x[y]) for y in reader.fieldnames] for x in reader], columns=reader.fieldnames)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 2
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Awesome. Let's take a look at our data (it should look pretty similar to our original CSV). We no longer even need a print function, as pandas provides some pretty formatted printing by default:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"player_data"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Player</th>\n",
" <th>G</th>\n",
" <th>A</th>\n",
" <th>+/-</th>\n",
" <th>PIM</th>\n",
" <th>PPP</th>\n",
" <th>SOG</th>\n",
" <th>W</th>\n",
" <th>GAA</th>\n",
" <th>SV%</th>\n",
" <th>SHO</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0 </th>\n",
" <td> Dwayne Gretskeet</td>\n",
" <td> 324</td>\n",
" <td> 407</td>\n",
" <td> 47</td>\n",
" <td> 677</td>\n",
" <td> 229</td>\n",
" <td> 2911</td>\n",
" <td> 83</td>\n",
" <td> 2.44</td>\n",
" <td> 0.920</td>\n",
" <td> 13</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1 </th>\n",
" <td> the favorites</td>\n",
" <td> 304</td>\n",
" <td> 362</td>\n",
" <td> 196</td>\n",
" <td> 711</td>\n",
" <td> 157</td>\n",
" <td> 2661</td>\n",
" <td> 67</td>\n",
" <td> 2.28</td>\n",
" <td> 0.917</td>\n",
" <td> 13</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2 </th>\n",
" <td> Mikhail's Team</td>\n",
" <td> 296</td>\n",
" <td> 367</td>\n",
" <td> 82</td>\n",
" <td> 490</td>\n",
" <td> 205</td>\n",
" <td> 2535</td>\n",
" <td> 40</td>\n",
" <td> 2.68</td>\n",
" <td> 0.911</td>\n",
" <td> 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3 </th>\n",
" <td> Pmoda</td>\n",
" <td> 274</td>\n",
" <td> 425</td>\n",
" <td> -7</td>\n",
" <td> 646</td>\n",
" <td> 217</td>\n",
" <td> 2830</td>\n",
" <td> 63</td>\n",
" <td> 2.38</td>\n",
" <td> 0.912</td>\n",
" <td> 7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4 </th>\n",
" <td> South Park Cows</td>\n",
" <td> 264</td>\n",
" <td> 407</td>\n",
" <td> 72</td>\n",
" <td> 548</td>\n",
" <td> 208</td>\n",
" <td> 2484</td>\n",
" <td> 74</td>\n",
" <td> 2.51</td>\n",
" <td> 0.920</td>\n",
" <td> 7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5 </th>\n",
" <td> JoshHum</td>\n",
" <td> 249</td>\n",
" <td> 460</td>\n",
" <td> -38</td>\n",
" <td> 629</td>\n",
" <td> 218</td>\n",
" <td> 2679</td>\n",
" <td> 47</td>\n",
" <td> 2.85</td>\n",
" <td> 0.917</td>\n",
" <td> 4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6 </th>\n",
" <td> Matthew's Team</td>\n",
" <td> 227</td>\n",
" <td> 361</td>\n",
" <td> 27</td>\n",
" <td> 550</td>\n",
" <td> 202</td>\n",
" <td> 2232</td>\n",
" <td> 19</td>\n",
" <td> 3.20</td>\n",
" <td> 0.894</td>\n",
" <td> 3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7 </th>\n",
" <td> Pika Pikachus</td>\n",
" <td> 226</td>\n",
" <td> 409</td>\n",
" <td> 53</td>\n",
" <td> 333</td>\n",
" <td> 218</td>\n",
" <td> 2159</td>\n",
" <td> 45</td>\n",
" <td> 2.56</td>\n",
" <td> 0.915</td>\n",
" <td> 3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8 </th>\n",
" <td> BenDover</td>\n",
" <td> 213</td>\n",
" <td> 380</td>\n",
" <td> 103</td>\n",
" <td> 521</td>\n",
" <td> 164</td>\n",
" <td> 2021</td>\n",
" <td> 42</td>\n",
" <td> 2.40</td>\n",
" <td> 0.913</td>\n",
" <td> 2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9 </th>\n",
" <td> Fresh Baked Brownies</td>\n",
" <td> 199</td>\n",
" <td> 353</td>\n",
" <td> 25</td>\n",
" <td> 544</td>\n",
" <td> 162</td>\n",
" <td> 2112</td>\n",
" <td> 41</td>\n",
" <td> 2.17</td>\n",
" <td> 0.921</td>\n",
" <td> 8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td> First Place</td>\n",
" <td> 196</td>\n",
" <td> 425</td>\n",
" <td> -61</td>\n",
" <td> 486</td>\n",
" <td> 211</td>\n",
" <td> 2074</td>\n",
" <td> 59</td>\n",
" <td> 2.44</td>\n",
" <td> 0.915</td>\n",
" <td> 9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td> EWeb FTW</td>\n",
" <td> 177</td>\n",
" <td> 334</td>\n",
" <td> -41</td>\n",
" <td> 333</td>\n",
" <td> 137</td>\n",
" <td> 1712</td>\n",
" <td> 47</td>\n",
" <td> 2.50</td>\n",
" <td> 0.907</td>\n",
" <td> 8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td> HERRO. THIS IS DOG</td>\n",
" <td> 174</td>\n",
" <td> 311</td>\n",
" <td> 59</td>\n",
" <td> 562</td>\n",
" <td> 155</td>\n",
" <td> 1822</td>\n",
" <td> 34</td>\n",
" <td> 3.15</td>\n",
" <td> 0.903</td>\n",
" <td> 2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td> Team Leaddz</td>\n",
" <td> 157</td>\n",
" <td> 278</td>\n",
" <td> -11</td>\n",
" <td> 463</td>\n",
" <td> 127</td>\n",
" <td> 1734</td>\n",
" <td> 29</td>\n",
" <td> 2.58</td>\n",
" <td> 0.910</td>\n",
" <td> 6</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>14 rows \u00d7 11 columns</p>\n",
"</div>"
],
"output_type": "pyout",
"prompt_number": 3,
"text": [
" Player G A +/- PIM PPP SOG W GAA SV% SHO\n",
"0 Dwayne Gretskeet 324 407 47 677 229 2911 83 2.44 0.920 13\n",
"1 the favorites 304 362 196 711 157 2661 67 2.28 0.917 13\n",
"2 Mikhail's Team 296 367 82 490 205 2535 40 2.68 0.911 5\n",
"3 Pmoda 274 425 -7 646 217 2830 63 2.38 0.912 7\n",
"4 South Park Cows 264 407 72 548 208 2484 74 2.51 0.920 7\n",
"5 JoshHum 249 460 -38 629 218 2679 47 2.85 0.917 4\n",
"6 Matthew's Team 227 361 27 550 202 2232 19 3.20 0.894 3\n",
"7 Pika Pikachus 226 409 53 333 218 2159 45 2.56 0.915 3\n",
"8 BenDover 213 380 103 521 164 2021 42 2.40 0.913 2\n",
"9 Fresh Baked Brownies 199 353 25 544 162 2112 41 2.17 0.921 8\n",
"10 First Place 196 425 -61 486 211 2074 59 2.44 0.915 9\n",
"11 EWeb FTW 177 334 -41 333 137 1712 47 2.50 0.907 8\n",
"12 HERRO. THIS IS DOG 174 311 59 562 155 1822 34 3.15 0.903 2\n",
"13 Team Leaddz 157 278 -11 463 127 1734 29 2.58 0.910 6\n",
"\n",
"[14 rows x 11 columns]"
]
}
],
"prompt_number": 3
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Nice!\n",
"\n",
"Since we're using pandas now, all sorts of cool analysis comes in for free. Let's take a look at the ranking each category, which without pandas was pretty complex to do:\n"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"ranked_data = player_data.rank(method=\"min\", numeric_only=True, ascending=False)\n",
"ranked_data[\"GAA\"] = player_data[\"GAA\"].rank(method=\"min\", ascending=True) # For GAA lower is actually better, so we rank in inverse order\n",
"ranked_data.insert(0, \"Player\", player_data[\"Player\"]) # Player names got lost in the ranking, since we said numeric only. \n",
"ranked_data"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Player</th>\n",
" <th>G</th>\n",
" <th>A</th>\n",
" <th>+/-</th>\n",
" <th>PIM</th>\n",
" <th>PPP</th>\n",
" <th>SOG</th>\n",
" <th>W</th>\n",
" <th>GAA</th>\n",
" <th>SV%</th>\n",
" <th>SHO</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0 </th>\n",
" <td> Dwayne Gretskeet</td>\n",
" <td> 1</td>\n",
" <td> 5</td>\n",
" <td> 7</td>\n",
" <td> 2</td>\n",
" <td> 1</td>\n",
" <td> 1</td>\n",
" <td> 1</td>\n",
" <td> 5</td>\n",
" <td> 2</td>\n",
" <td> 1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1 </th>\n",
" <td> the favorites</td>\n",
" <td> 2</td>\n",
" <td> 9</td>\n",
" <td> 1</td>\n",
" <td> 1</td>\n",
" <td> 11</td>\n",
" <td> 4</td>\n",
" <td> 3</td>\n",
" <td> 2</td>\n",
" <td> 4</td>\n",
" <td> 1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2 </th>\n",
" <td> Mikhail's Team</td>\n",
" <td> 3</td>\n",
" <td> 8</td>\n",
" <td> 3</td>\n",
" <td> 10</td>\n",
" <td> 7</td>\n",
" <td> 5</td>\n",
" <td> 11</td>\n",
" <td> 11</td>\n",
" <td> 10</td>\n",
" <td> 9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3 </th>\n",
" <td> Pmoda</td>\n",
" <td> 4</td>\n",
" <td> 2</td>\n",
" <td> 10</td>\n",
" <td> 3</td>\n",
" <td> 4</td>\n",
" <td> 2</td>\n",
" <td> 4</td>\n",
" <td> 3</td>\n",
" <td> 9</td>\n",
" <td> 6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4 </th>\n",
" <td> South Park Cows</td>\n",
" <td> 5</td>\n",
" <td> 5</td>\n",
" <td> 4</td>\n",
" <td> 7</td>\n",
" <td> 6</td>\n",
" <td> 6</td>\n",
" <td> 2</td>\n",
" <td> 8</td>\n",
" <td> 2</td>\n",
" <td> 6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5 </th>\n",
" <td> JoshHum</td>\n",
" <td> 6</td>\n",
" <td> 1</td>\n",
" <td> 12</td>\n",
" <td> 4</td>\n",
" <td> 2</td>\n",
" <td> 3</td>\n",
" <td> 6</td>\n",
" <td> 12</td>\n",
" <td> 4</td>\n",
" <td> 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6 </th>\n",
" <td> Matthew's Team</td>\n",
" <td> 7</td>\n",
" <td> 10</td>\n",
" <td> 8</td>\n",
" <td> 6</td>\n",
" <td> 8</td>\n",
" <td> 7</td>\n",
" <td> 14</td>\n",
" <td> 14</td>\n",
" <td> 14</td>\n",
" <td> 11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7 </th>\n",
" <td> Pika Pikachus</td>\n",
" <td> 8</td>\n",
" <td> 4</td>\n",
" <td> 6</td>\n",
" <td> 13</td>\n",
" <td> 2</td>\n",
" <td> 8</td>\n",
" <td> 8</td>\n",
" <td> 9</td>\n",
" <td> 6</td>\n",
" <td> 11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8 </th>\n",
" <td> BenDover</td>\n",
" <td> 9</td>\n",
" <td> 7</td>\n",
" <td> 2</td>\n",
" <td> 9</td>\n",
" <td> 9</td>\n",
" <td> 11</td>\n",
" <td> 9</td>\n",
" <td> 4</td>\n",
" <td> 8</td>\n",
" <td> 13</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9 </th>\n",
" <td> Fresh Baked Brownies</td>\n",
" <td> 10</td>\n",
" <td> 11</td>\n",
" <td> 9</td>\n",
" <td> 8</td>\n",
" <td> 10</td>\n",
" <td> 9</td>\n",
" <td> 10</td>\n",
" <td> 1</td>\n",
" <td> 1</td>\n",
" <td> 4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td> First Place</td>\n",
" <td> 11</td>\n",
" <td> 2</td>\n",
" <td> 14</td>\n",
" <td> 11</td>\n",
" <td> 5</td>\n",
" <td> 10</td>\n",
" <td> 5</td>\n",
" <td> 5</td>\n",
" <td> 6</td>\n",
" <td> 3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td> EWeb FTW</td>\n",
" <td> 12</td>\n",
" <td> 12</td>\n",
" <td> 13</td>\n",
" <td> 13</td>\n",
" <td> 13</td>\n",
" <td> 14</td>\n",
" <td> 6</td>\n",
" <td> 7</td>\n",
" <td> 12</td>\n",
" <td> 4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td> HERRO. THIS IS DOG</td>\n",
" <td> 13</td>\n",
" <td> 13</td>\n",
" <td> 5</td>\n",
" <td> 5</td>\n",
" <td> 12</td>\n",
" <td> 12</td>\n",
" <td> 12</td>\n",
" <td> 13</td>\n",
" <td> 13</td>\n",
" <td> 13</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td> Team Leaddz</td>\n",
" <td> 14</td>\n",
" <td> 14</td>\n",
" <td> 11</td>\n",
" <td> 12</td>\n",
" <td> 14</td>\n",
" <td> 13</td>\n",
" <td> 13</td>\n",
" <td> 10</td>\n",
" <td> 11</td>\n",
" <td> 8</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>14 rows \u00d7 11 columns</p>\n",
"</div>"
],
"output_type": "pyout",
"prompt_number": 4,
"text": [
" Player G A +/- PIM PPP SOG W GAA SV% SHO\n",
"0 Dwayne Gretskeet 1 5 7 2 1 1 1 5 2 1\n",
"1 the favorites 2 9 1 1 11 4 3 2 4 1\n",
"2 Mikhail's Team 3 8 3 10 7 5 11 11 10 9\n",
"3 Pmoda 4 2 10 3 4 2 4 3 9 6\n",
"4 South Park Cows 5 5 4 7 6 6 2 8 2 6\n",
"5 JoshHum 6 1 12 4 2 3 6 12 4 10\n",
"6 Matthew's Team 7 10 8 6 8 7 14 14 14 11\n",
"7 Pika Pikachus 8 4 6 13 2 8 8 9 6 11\n",
"8 BenDover 9 7 2 9 9 11 9 4 8 13\n",
"9 Fresh Baked Brownies 10 11 9 8 10 9 10 1 1 4\n",
"10 First Place 11 2 14 11 5 10 5 5 6 3\n",
"11 EWeb FTW 12 12 13 13 13 14 6 7 12 4\n",
"12 HERRO. THIS IS DOG 13 13 5 5 12 12 12 13 13 13\n",
"13 Team Leaddz 14 14 11 12 14 13 13 10 11 8\n",
"\n",
"[14 rows x 11 columns]"
]
}
],
"prompt_number": 4
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Wow, that sure was easy! Let's get everyone's average rank, and rank them by average rank:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"avg_ranks = [ranked_data.ix[i,1:].mean(numeric_only=True) for i in range(14)]\n",
"ranked_data[\"AVG\"] = avg_ranks\n",
"ranked_data[\"Rank\"] = ranked_data[\"AVG\"].rank(method=\"min\", ascending=True)\n",
"ranked_data"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Player</th>\n",
" <th>G</th>\n",
" <th>A</th>\n",
" <th>+/-</th>\n",
" <th>PIM</th>\n",
" <th>PPP</th>\n",
" <th>SOG</th>\n",
" <th>W</th>\n",
" <th>GAA</th>\n",
" <th>SV%</th>\n",
" <th>SHO</th>\n",
" <th>AVG</th>\n",
" <th>Rank</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0 </th>\n",
" <td> Dwayne Gretskeet</td>\n",
" <td> 1</td>\n",
" <td> 5</td>\n",
" <td> 7</td>\n",
" <td> 2</td>\n",
" <td> 1</td>\n",
" <td> 1</td>\n",
" <td> 1</td>\n",
" <td> 5</td>\n",
" <td> 2</td>\n",
" <td> 1</td>\n",
" <td> 2.6</td>\n",
" <td> 1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1 </th>\n",
" <td> the favorites</td>\n",
" <td> 2</td>\n",
" <td> 9</td>\n",
" <td> 1</td>\n",
" <td> 1</td>\n",
" <td> 11</td>\n",
" <td> 4</td>\n",
" <td> 3</td>\n",
" <td> 2</td>\n",
" <td> 4</td>\n",
" <td> 1</td>\n",
" <td> 3.8</td>\n",
" <td> 2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2 </th>\n",
" <td> Mikhail's Team</td>\n",
" <td> 3</td>\n",
" <td> 8</td>\n",
" <td> 3</td>\n",
" <td> 10</td>\n",
" <td> 7</td>\n",
" <td> 5</td>\n",
" <td> 11</td>\n",
" <td> 11</td>\n",
" <td> 10</td>\n",
" <td> 9</td>\n",
" <td> 7.7</td>\n",
" <td> 9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3 </th>\n",
" <td> Pmoda</td>\n",
" <td> 4</td>\n",
" <td> 2</td>\n",
" <td> 10</td>\n",
" <td> 3</td>\n",
" <td> 4</td>\n",
" <td> 2</td>\n",
" <td> 4</td>\n",
" <td> 3</td>\n",
" <td> 9</td>\n",
" <td> 6</td>\n",
" <td> 4.7</td>\n",
" <td> 3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4 </th>\n",
" <td> South Park Cows</td>\n",
" <td> 5</td>\n",
" <td> 5</td>\n",
" <td> 4</td>\n",
" <td> 7</td>\n",
" <td> 6</td>\n",
" <td> 6</td>\n",
" <td> 2</td>\n",
" <td> 8</td>\n",
" <td> 2</td>\n",
" <td> 6</td>\n",
" <td> 5.1</td>\n",
" <td> 4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5 </th>\n",
" <td> JoshHum</td>\n",
" <td> 6</td>\n",
" <td> 1</td>\n",
" <td> 12</td>\n",
" <td> 4</td>\n",
" <td> 2</td>\n",
" <td> 3</td>\n",
" <td> 6</td>\n",
" <td> 12</td>\n",
" <td> 4</td>\n",
" <td> 10</td>\n",
" <td> 6.0</td>\n",
" <td> 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6 </th>\n",
" <td> Matthew's Team</td>\n",
" <td> 7</td>\n",
" <td> 10</td>\n",
" <td> 8</td>\n",
" <td> 6</td>\n",
" <td> 8</td>\n",
" <td> 7</td>\n",
" <td> 14</td>\n",
" <td> 14</td>\n",
" <td> 14</td>\n",
" <td> 11</td>\n",
" <td> 9.9</td>\n",
" <td> 11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7 </th>\n",
" <td> Pika Pikachus</td>\n",
" <td> 8</td>\n",
" <td> 4</td>\n",
" <td> 6</td>\n",
" <td> 13</td>\n",
" <td> 2</td>\n",
" <td> 8</td>\n",
" <td> 8</td>\n",
" <td> 9</td>\n",
" <td> 6</td>\n",
" <td> 11</td>\n",
" <td> 7.5</td>\n",
" <td> 8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8 </th>\n",
" <td> BenDover</td>\n",
" <td> 9</td>\n",
" <td> 7</td>\n",
" <td> 2</td>\n",
" <td> 9</td>\n",
" <td> 9</td>\n",
" <td> 11</td>\n",
" <td> 9</td>\n",
" <td> 4</td>\n",
" <td> 8</td>\n",
" <td> 13</td>\n",
" <td> 8.1</td>\n",
" <td> 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9 </th>\n",
" <td> Fresh Baked Brownies</td>\n",
" <td> 10</td>\n",
" <td> 11</td>\n",
" <td> 9</td>\n",
" <td> 8</td>\n",
" <td> 10</td>\n",
" <td> 9</td>\n",
" <td> 10</td>\n",
" <td> 1</td>\n",
" <td> 1</td>\n",
" <td> 4</td>\n",
" <td> 7.3</td>\n",
" <td> 7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td> First Place</td>\n",
" <td> 11</td>\n",
" <td> 2</td>\n",
" <td> 14</td>\n",
" <td> 11</td>\n",
" <td> 5</td>\n",
" <td> 10</td>\n",
" <td> 5</td>\n",
" <td> 5</td>\n",
" <td> 6</td>\n",
" <td> 3</td>\n",
" <td> 7.2</td>\n",
" <td> 6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td> EWeb FTW</td>\n",
" <td> 12</td>\n",
" <td> 12</td>\n",
" <td> 13</td>\n",
" <td> 13</td>\n",
" <td> 13</td>\n",
" <td> 14</td>\n",
" <td> 6</td>\n",
" <td> 7</td>\n",
" <td> 12</td>\n",
" <td> 4</td>\n",
" <td> 10.6</td>\n",
" <td> 12</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td> HERRO. THIS IS DOG</td>\n",
" <td> 13</td>\n",
" <td> 13</td>\n",
" <td> 5</td>\n",
" <td> 5</td>\n",
" <td> 12</td>\n",
" <td> 12</td>\n",
" <td> 12</td>\n",
" <td> 13</td>\n",
" <td> 13</td>\n",
" <td> 13</td>\n",
" <td> 11.1</td>\n",
" <td> 13</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td> Team Leaddz</td>\n",
" <td> 14</td>\n",
" <td> 14</td>\n",
" <td> 11</td>\n",
" <td> 12</td>\n",
" <td> 14</td>\n",
" <td> 13</td>\n",
" <td> 13</td>\n",
" <td> 10</td>\n",
" <td> 11</td>\n",
" <td> 8</td>\n",
" <td> 12.0</td>\n",
" <td> 14</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>14 rows \u00d7 13 columns</p>\n",
"</div>"
],
"output_type": "pyout",
"prompt_number": 5,
"text": [
" Player G A +/- PIM PPP SOG W GAA SV% SHO AVG Rank\n",
"0 Dwayne Gretskeet 1 5 7 2 1 1 1 5 2 1 2.6 1\n",
"1 the favorites 2 9 1 1 11 4 3 2 4 1 3.8 2\n",
"2 Mikhail's Team 3 8 3 10 7 5 11 11 10 9 7.7 9\n",
"3 Pmoda 4 2 10 3 4 2 4 3 9 6 4.7 3\n",
"4 South Park Cows 5 5 4 7 6 6 2 8 2 6 5.1 4\n",
"5 JoshHum 6 1 12 4 2 3 6 12 4 10 6.0 5\n",
"6 Matthew's Team 7 10 8 6 8 7 14 14 14 11 9.9 11\n",
"7 Pika Pikachus 8 4 6 13 2 8 8 9 6 11 7.5 8\n",
"8 BenDover 9 7 2 9 9 11 9 4 8 13 8.1 10\n",
"9 Fresh Baked Brownies 10 11 9 8 10 9 10 1 1 4 7.3 7\n",
"10 First Place 11 2 14 11 5 10 5 5 6 3 7.2 6\n",
"11 EWeb FTW 12 12 13 13 13 14 6 7 12 4 10.6 12\n",
"12 HERRO. THIS IS DOG 13 13 5 5 12 12 12 13 13 13 11.1 13\n",
"13 Team Leaddz 14 14 11 12 14 13 13 10 11 8 12.0 14\n",
"\n",
"[14 rows x 13 columns]"
]
}
],
"prompt_number": 5
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Next, lets manually add in each player's actual rank according to Yahoo's scoring."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"ranked_data[\"Yahoo!\"] = [2, 4, 6, 1, 7, 5, 11, 10, 8, 9, 3, 13, 12, 14]\n",
"\n",
"ranked_data"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Player</th>\n",
" <th>G</th>\n",
" <th>A</th>\n",
" <th>+/-</th>\n",
" <th>PIM</th>\n",
" <th>PPP</th>\n",
" <th>SOG</th>\n",
" <th>W</th>\n",
" <th>GAA</th>\n",
" <th>SV%</th>\n",
" <th>SHO</th>\n",
" <th>AVG</th>\n",
" <th>Rank</th>\n",
" <th>Yahoo!</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0 </th>\n",
" <td> Dwayne Gretskeet</td>\n",
" <td> 1</td>\n",
" <td> 5</td>\n",
" <td> 7</td>\n",
" <td> 2</td>\n",
" <td> 1</td>\n",
" <td> 1</td>\n",
" <td> 1</td>\n",
" <td> 5</td>\n",
" <td> 2</td>\n",
" <td> 1</td>\n",
" <td> 2.6</td>\n",
" <td> 1</td>\n",
" <td> 2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1 </th>\n",
" <td> the favorites</td>\n",
" <td> 2</td>\n",
" <td> 9</td>\n",
" <td> 1</td>\n",
" <td> 1</td>\n",
" <td> 11</td>\n",
" <td> 4</td>\n",
" <td> 3</td>\n",
" <td> 2</td>\n",
" <td> 4</td>\n",
" <td> 1</td>\n",
" <td> 3.8</td>\n",
" <td> 2</td>\n",
" <td> 4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2 </th>\n",
" <td> Mikhail's Team</td>\n",
" <td> 3</td>\n",
" <td> 8</td>\n",
" <td> 3</td>\n",
" <td> 10</td>\n",
" <td> 7</td>\n",
" <td> 5</td>\n",
" <td> 11</td>\n",
" <td> 11</td>\n",
" <td> 10</td>\n",
" <td> 9</td>\n",
" <td> 7.7</td>\n",
" <td> 9</td>\n",
" <td> 6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3 </th>\n",
" <td> Pmoda</td>\n",
" <td> 4</td>\n",
" <td> 2</td>\n",
" <td> 10</td>\n",
" <td> 3</td>\n",
" <td> 4</td>\n",
" <td> 2</td>\n",
" <td> 4</td>\n",
" <td> 3</td>\n",
" <td> 9</td>\n",
" <td> 6</td>\n",
" <td> 4.7</td>\n",
" <td> 3</td>\n",
" <td> 1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4 </th>\n",
" <td> South Park Cows</td>\n",
" <td> 5</td>\n",
" <td> 5</td>\n",
" <td> 4</td>\n",
" <td> 7</td>\n",
" <td> 6</td>\n",
" <td> 6</td>\n",
" <td> 2</td>\n",
" <td> 8</td>\n",
" <td> 2</td>\n",
" <td> 6</td>\n",
" <td> 5.1</td>\n",
" <td> 4</td>\n",
" <td> 7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5 </th>\n",
" <td> JoshHum</td>\n",
" <td> 6</td>\n",
" <td> 1</td>\n",
" <td> 12</td>\n",
" <td> 4</td>\n",
" <td> 2</td>\n",
" <td> 3</td>\n",
" <td> 6</td>\n",
" <td> 12</td>\n",
" <td> 4</td>\n",
" <td> 10</td>\n",
" <td> 6.0</td>\n",
" <td> 5</td>\n",
" <td> 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6 </th>\n",
" <td> Matthew's Team</td>\n",
" <td> 7</td>\n",
" <td> 10</td>\n",
" <td> 8</td>\n",
" <td> 6</td>\n",
" <td> 8</td>\n",
" <td> 7</td>\n",
" <td> 14</td>\n",
" <td> 14</td>\n",
" <td> 14</td>\n",
" <td> 11</td>\n",
" <td> 9.9</td>\n",
" <td> 11</td>\n",
" <td> 11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7 </th>\n",
" <td> Pika Pikachus</td>\n",
" <td> 8</td>\n",
" <td> 4</td>\n",
" <td> 6</td>\n",
" <td> 13</td>\n",
" <td> 2</td>\n",
" <td> 8</td>\n",
" <td> 8</td>\n",
" <td> 9</td>\n",
" <td> 6</td>\n",
" <td> 11</td>\n",
" <td> 7.5</td>\n",
" <td> 8</td>\n",
" <td> 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8 </th>\n",
" <td> BenDover</td>\n",
" <td> 9</td>\n",
" <td> 7</td>\n",
" <td> 2</td>\n",
" <td> 9</td>\n",
" <td> 9</td>\n",
" <td> 11</td>\n",
" <td> 9</td>\n",
" <td> 4</td>\n",
" <td> 8</td>\n",
" <td> 13</td>\n",
" <td> 8.1</td>\n",
" <td> 10</td>\n",
" <td> 8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9 </th>\n",
" <td> Fresh Baked Brownies</td>\n",
" <td> 10</td>\n",
" <td> 11</td>\n",
" <td> 9</td>\n",
" <td> 8</td>\n",
" <td> 10</td>\n",
" <td> 9</td>\n",
" <td> 10</td>\n",
" <td> 1</td>\n",
" <td> 1</td>\n",
" <td> 4</td>\n",
" <td> 7.3</td>\n",
" <td> 7</td>\n",
" <td> 9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td> First Place</td>\n",
" <td> 11</td>\n",
" <td> 2</td>\n",
" <td> 14</td>\n",
" <td> 11</td>\n",
" <td> 5</td>\n",
" <td> 10</td>\n",
" <td> 5</td>\n",
" <td> 5</td>\n",
" <td> 6</td>\n",
" <td> 3</td>\n",
" <td> 7.2</td>\n",
" <td> 6</td>\n",
" <td> 3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td> EWeb FTW</td>\n",
" <td> 12</td>\n",
" <td> 12</td>\n",
" <td> 13</td>\n",
" <td> 13</td>\n",
" <td> 13</td>\n",
" <td> 14</td>\n",
" <td> 6</td>\n",
" <td> 7</td>\n",
" <td> 12</td>\n",
" <td> 4</td>\n",
" <td> 10.6</td>\n",
" <td> 12</td>\n",
" <td> 13</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td> HERRO. THIS IS DOG</td>\n",
" <td> 13</td>\n",
" <td> 13</td>\n",
" <td> 5</td>\n",
" <td> 5</td>\n",
" <td> 12</td>\n",
" <td> 12</td>\n",
" <td> 12</td>\n",
" <td> 13</td>\n",
" <td> 13</td>\n",
" <td> 13</td>\n",
" <td> 11.1</td>\n",
" <td> 13</td>\n",
" <td> 12</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td> Team Leaddz</td>\n",
" <td> 14</td>\n",
" <td> 14</td>\n",
" <td> 11</td>\n",
" <td> 12</td>\n",
" <td> 14</td>\n",
" <td> 13</td>\n",
" <td> 13</td>\n",
" <td> 10</td>\n",
" <td> 11</td>\n",
" <td> 8</td>\n",
" <td> 12.0</td>\n",
" <td> 14</td>\n",
" <td> 14</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>14 rows \u00d7 14 columns</p>\n",
"</div>"
],
"output_type": "pyout",
"prompt_number": 6,
"text": [
" Player G A +/- PIM PPP SOG W GAA SV% SHO AVG Rank Yahoo!\n",
"0 Dwayne Gretskeet 1 5 7 2 1 1 1 5 2 1 2.6 1 2\n",
"1 the favorites 2 9 1 1 11 4 3 2 4 1 3.8 2 4\n",
"2 Mikhail's Team 3 8 3 10 7 5 11 11 10 9 7.7 9 6\n",
"3 Pmoda 4 2 10 3 4 2 4 3 9 6 4.7 3 1\n",
"4 South Park Cows 5 5 4 7 6 6 2 8 2 6 5.1 4 7\n",
"5 JoshHum 6 1 12 4 2 3 6 12 4 10 6.0 5 5\n",
"6 Matthew's Team 7 10 8 6 8 7 14 14 14 11 9.9 11 11\n",
"7 Pika Pikachus 8 4 6 13 2 8 8 9 6 11 7.5 8 10\n",
"8 BenDover 9 7 2 9 9 11 9 4 8 13 8.1 10 8\n",
"9 Fresh Baked Brownies 10 11 9 8 10 9 10 1 1 4 7.3 7 9\n",
"10 First Place 11 2 14 11 5 10 5 5 6 3 7.2 6 3\n",
"11 EWeb FTW 12 12 13 13 13 14 6 7 12 4 10.6 12 13\n",
"12 HERRO. THIS IS DOG 13 13 5 5 12 12 12 13 13 13 11.1 13 12\n",
"13 Team Leaddz 14 14 11 12 14 13 13 10 11 8 12.0 14 14\n",
"\n",
"[14 rows x 14 columns]"
]
}
],
"prompt_number": 6
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Ok, so we have everone's Yahoo! rank and everyone's rank according to how well they're actually doing on average. Let's see everyone's diff:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"ranked_data[\"Diff\"] = ranked_data[\"Rank\"] - ranked_data[\"Yahoo!\"]\n",
"\n",
"ranked_data"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Player</th>\n",
" <th>G</th>\n",
" <th>A</th>\n",
" <th>+/-</th>\n",
" <th>PIM</th>\n",
" <th>PPP</th>\n",
" <th>SOG</th>\n",
" <th>W</th>\n",
" <th>GAA</th>\n",
" <th>SV%</th>\n",
" <th>SHO</th>\n",
" <th>AVG</th>\n",
" <th>Rank</th>\n",
" <th>Yahoo!</th>\n",
" <th>Diff</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0 </th>\n",
" <td> Dwayne Gretskeet</td>\n",
" <td> 1</td>\n",
" <td> 5</td>\n",
" <td> 7</td>\n",
" <td> 2</td>\n",
" <td> 1</td>\n",
" <td> 1</td>\n",
" <td> 1</td>\n",
" <td> 5</td>\n",
" <td> 2</td>\n",
" <td> 1</td>\n",
" <td> 2.6</td>\n",
" <td> 1</td>\n",
" <td> 2</td>\n",
" <td>-1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1 </th>\n",
" <td> the favorites</td>\n",
" <td> 2</td>\n",
" <td> 9</td>\n",
" <td> 1</td>\n",
" <td> 1</td>\n",
" <td> 11</td>\n",
" <td> 4</td>\n",
" <td> 3</td>\n",
" <td> 2</td>\n",
" <td> 4</td>\n",
" <td> 1</td>\n",
" <td> 3.8</td>\n",
" <td> 2</td>\n",
" <td> 4</td>\n",
" <td>-2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2 </th>\n",
" <td> Mikhail's Team</td>\n",
" <td> 3</td>\n",
" <td> 8</td>\n",
" <td> 3</td>\n",
" <td> 10</td>\n",
" <td> 7</td>\n",
" <td> 5</td>\n",
" <td> 11</td>\n",
" <td> 11</td>\n",
" <td> 10</td>\n",
" <td> 9</td>\n",
" <td> 7.7</td>\n",
" <td> 9</td>\n",
" <td> 6</td>\n",
" <td> 3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3 </th>\n",
" <td> Pmoda</td>\n",
" <td> 4</td>\n",
" <td> 2</td>\n",
" <td> 10</td>\n",
" <td> 3</td>\n",
" <td> 4</td>\n",
" <td> 2</td>\n",
" <td> 4</td>\n",
" <td> 3</td>\n",
" <td> 9</td>\n",
" <td> 6</td>\n",
" <td> 4.7</td>\n",
" <td> 3</td>\n",
" <td> 1</td>\n",
" <td> 2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4 </th>\n",
" <td> South Park Cows</td>\n",
" <td> 5</td>\n",
" <td> 5</td>\n",
" <td> 4</td>\n",
" <td> 7</td>\n",
" <td> 6</td>\n",
" <td> 6</td>\n",
" <td> 2</td>\n",
" <td> 8</td>\n",
" <td> 2</td>\n",
" <td> 6</td>\n",
" <td> 5.1</td>\n",
" <td> 4</td>\n",
" <td> 7</td>\n",
" <td>-3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5 </th>\n",
" <td> JoshHum</td>\n",
" <td> 6</td>\n",
" <td> 1</td>\n",
" <td> 12</td>\n",
" <td> 4</td>\n",
" <td> 2</td>\n",
" <td> 3</td>\n",
" <td> 6</td>\n",
" <td> 12</td>\n",
" <td> 4</td>\n",
" <td> 10</td>\n",
" <td> 6.0</td>\n",
" <td> 5</td>\n",
" <td> 5</td>\n",
" <td> 0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6 </th>\n",
" <td> Matthew's Team</td>\n",
" <td> 7</td>\n",
" <td> 10</td>\n",
" <td> 8</td>\n",
" <td> 6</td>\n",
" <td> 8</td>\n",
" <td> 7</td>\n",
" <td> 14</td>\n",
" <td> 14</td>\n",
" <td> 14</td>\n",
" <td> 11</td>\n",
" <td> 9.9</td>\n",
" <td> 11</td>\n",
" <td> 11</td>\n",
" <td> 0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7 </th>\n",
" <td> Pika Pikachus</td>\n",
" <td> 8</td>\n",
" <td> 4</td>\n",
" <td> 6</td>\n",
" <td> 13</td>\n",
" <td> 2</td>\n",
" <td> 8</td>\n",
" <td> 8</td>\n",
" <td> 9</td>\n",
" <td> 6</td>\n",
" <td> 11</td>\n",
" <td> 7.5</td>\n",
" <td> 8</td>\n",
" <td> 10</td>\n",
" <td>-2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8 </th>\n",
" <td> BenDover</td>\n",
" <td> 9</td>\n",
" <td> 7</td>\n",
" <td> 2</td>\n",
" <td> 9</td>\n",
" <td> 9</td>\n",
" <td> 11</td>\n",
" <td> 9</td>\n",
" <td> 4</td>\n",
" <td> 8</td>\n",
" <td> 13</td>\n",
" <td> 8.1</td>\n",
" <td> 10</td>\n",
" <td> 8</td>\n",
" <td> 2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9 </th>\n",
" <td> Fresh Baked Brownies</td>\n",
" <td> 10</td>\n",
" <td> 11</td>\n",
" <td> 9</td>\n",
" <td> 8</td>\n",
" <td> 10</td>\n",
" <td> 9</td>\n",
" <td> 10</td>\n",
" <td> 1</td>\n",
" <td> 1</td>\n",
" <td> 4</td>\n",
" <td> 7.3</td>\n",
" <td> 7</td>\n",
" <td> 9</td>\n",
" <td>-2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td> First Place</td>\n",
" <td> 11</td>\n",
" <td> 2</td>\n",
" <td> 14</td>\n",
" <td> 11</td>\n",
" <td> 5</td>\n",
" <td> 10</td>\n",
" <td> 5</td>\n",
" <td> 5</td>\n",
" <td> 6</td>\n",
" <td> 3</td>\n",
" <td> 7.2</td>\n",
" <td> 6</td>\n",
" <td> 3</td>\n",
" <td> 3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td> EWeb FTW</td>\n",
" <td> 12</td>\n",
" <td> 12</td>\n",
" <td> 13</td>\n",
" <td> 13</td>\n",
" <td> 13</td>\n",
" <td> 14</td>\n",
" <td> 6</td>\n",
" <td> 7</td>\n",
" <td> 12</td>\n",
" <td> 4</td>\n",
" <td> 10.6</td>\n",
" <td> 12</td>\n",
" <td> 13</td>\n",
" <td>-1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td> HERRO. THIS IS DOG</td>\n",
" <td> 13</td>\n",
" <td> 13</td>\n",
" <td> 5</td>\n",
" <td> 5</td>\n",
" <td> 12</td>\n",
" <td> 12</td>\n",
" <td> 12</td>\n",
" <td> 13</td>\n",
" <td> 13</td>\n",
" <td> 13</td>\n",
" <td> 11.1</td>\n",
" <td> 13</td>\n",
" <td> 12</td>\n",
" <td> 1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td> Team Leaddz</td>\n",
" <td> 14</td>\n",
" <td> 14</td>\n",
" <td> 11</td>\n",
" <td> 12</td>\n",
" <td> 14</td>\n",
" <td> 13</td>\n",
" <td> 13</td>\n",
" <td> 10</td>\n",
" <td> 11</td>\n",
" <td> 8</td>\n",
" <td> 12.0</td>\n",
" <td> 14</td>\n",
" <td> 14</td>\n",
" <td> 0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>14 rows \u00d7 15 columns</p>\n",
"</div>"
],
"output_type": "pyout",
"prompt_number": 7,
"text": [
" Player G A +/- PIM PPP SOG W GAA SV% SHO AVG Rank Yahoo! Diff\n",
"0 Dwayne Gretskeet 1 5 7 2 1 1 1 5 2 1 2.6 1 2 -1\n",
"1 the favorites 2 9 1 1 11 4 3 2 4 1 3.8 2 4 -2\n",
"2 Mikhail's Team 3 8 3 10 7 5 11 11 10 9 7.7 9 6 3\n",
"3 Pmoda 4 2 10 3 4 2 4 3 9 6 4.7 3 1 2\n",
"4 South Park Cows 5 5 4 7 6 6 2 8 2 6 5.1 4 7 -3\n",
"5 JoshHum 6 1 12 4 2 3 6 12 4 10 6.0 5 5 0\n",
"6 Matthew's Team 7 10 8 6 8 7 14 14 14 11 9.9 11 11 0\n",
"7 Pika Pikachus 8 4 6 13 2 8 8 9 6 11 7.5 8 10 -2\n",
"8 BenDover 9 7 2 9 9 11 9 4 8 13 8.1 10 8 2\n",
"9 Fresh Baked Brownies 10 11 9 8 10 9 10 1 1 4 7.3 7 9 -2\n",
"10 First Place 11 2 14 11 5 10 5 5 6 3 7.2 6 3 3\n",
"11 EWeb FTW 12 12 13 13 13 14 6 7 12 4 10.6 12 13 -1\n",
"12 HERRO. THIS IS DOG 13 13 5 5 12 12 12 13 13 13 11.1 13 12 1\n",
"13 Team Leaddz 14 14 11 12 14 13 13 10 11 8 12.0 14 14 0\n",
"\n",
"[14 rows x 15 columns]"
]
}
],
"prompt_number": 7
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Alright, let's add the final few pieces of the puzzle to get back to where the Excel and original Python (without pandas) versions were at. First the easy part, number of First and Top 5s per player:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"transposed = ranked_data.transpose()\n",
"\n",
"top_five = [0 for x in range(len(ranked_data))]\n",
"first = [0 for x in range(len(ranked_data))]\n",
"\n",
"for i in range(14):\n",
" for rank in transposed[i][1:11]:\n",
" if rank < 6:\n",
" top_five[i] += 1\n",
" if rank == 1:\n",
" first[i] += 1\n",
" ranked_data[\"Top 5\"] = top_five \n",
" ranked_data[\"First\"] = first\n",
"\n",
"ranked_data\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Player</th>\n",
" <th>G</th>\n",
" <th>A</th>\n",
" <th>+/-</th>\n",
" <th>PIM</th>\n",
" <th>PPP</th>\n",
" <th>SOG</th>\n",
" <th>W</th>\n",
" <th>GAA</th>\n",
" <th>SV%</th>\n",
" <th>SHO</th>\n",
" <th>AVG</th>\n",
" <th>Rank</th>\n",
" <th>Yahoo!</th>\n",
" <th>Diff</th>\n",
" <th>Top 5</th>\n",
" <th>First</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0 </th>\n",
" <td> Dwayne Gretskeet</td>\n",
" <td> 1</td>\n",
" <td> 5</td>\n",
" <td> 7</td>\n",
" <td> 2</td>\n",
" <td> 1</td>\n",
" <td> 1</td>\n",
" <td> 1</td>\n",
" <td> 5</td>\n",
" <td> 2</td>\n",
" <td> 1</td>\n",
" <td> 2.6</td>\n",
" <td> 1</td>\n",
" <td> 2</td>\n",
" <td>-1</td>\n",
" <td> 9</td>\n",
" <td> 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1 </th>\n",
" <td> the favorites</td>\n",
" <td> 2</td>\n",
" <td> 9</td>\n",
" <td> 1</td>\n",
" <td> 1</td>\n",
" <td> 11</td>\n",
" <td> 4</td>\n",
" <td> 3</td>\n",
" <td> 2</td>\n",
" <td> 4</td>\n",
" <td> 1</td>\n",
" <td> 3.8</td>\n",
" <td> 2</td>\n",
" <td> 4</td>\n",
" <td>-2</td>\n",
" <td> 8</td>\n",
" <td> 3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2 </th>\n",
" <td> Mikhail's Team</td>\n",
" <td> 3</td>\n",
" <td> 8</td>\n",
" <td> 3</td>\n",
" <td> 10</td>\n",
" <td> 7</td>\n",
" <td> 5</td>\n",
" <td> 11</td>\n",
" <td> 11</td>\n",
" <td> 10</td>\n",
" <td> 9</td>\n",
" <td> 7.7</td>\n",
" <td> 9</td>\n",
" <td> 6</td>\n",
" <td> 3</td>\n",
" <td> 3</td>\n",
" <td> 0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3 </th>\n",
" <td> Pmoda</td>\n",
" <td> 4</td>\n",
" <td> 2</td>\n",
" <td> 10</td>\n",
" <td> 3</td>\n",
" <td> 4</td>\n",
" <td> 2</td>\n",
" <td> 4</td>\n",
" <td> 3</td>\n",
" <td> 9</td>\n",
" <td> 6</td>\n",
" <td> 4.7</td>\n",
" <td> 3</td>\n",
" <td> 1</td>\n",
" <td> 2</td>\n",
" <td> 7</td>\n",
" <td> 0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4 </th>\n",
" <td> South Park Cows</td>\n",
" <td> 5</td>\n",
" <td> 5</td>\n",
" <td> 4</td>\n",
" <td> 7</td>\n",
" <td> 6</td>\n",
" <td> 6</td>\n",
" <td> 2</td>\n",
" <td> 8</td>\n",
" <td> 2</td>\n",
" <td> 6</td>\n",
" <td> 5.1</td>\n",
" <td> 4</td>\n",
" <td> 7</td>\n",
" <td>-3</td>\n",
" <td> 5</td>\n",
" <td> 0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5 </th>\n",
" <td> JoshHum</td>\n",
" <td> 6</td>\n",
" <td> 1</td>\n",
" <td> 12</td>\n",
" <td> 4</td>\n",
" <td> 2</td>\n",
" <td> 3</td>\n",
" <td> 6</td>\n",
" <td> 12</td>\n",
" <td> 4</td>\n",
" <td> 10</td>\n",
" <td> 6.0</td>\n",
" <td> 5</td>\n",
" <td> 5</td>\n",
" <td> 0</td>\n",
" <td> 5</td>\n",
" <td> 1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6 </th>\n",
" <td> Matthew's Team</td>\n",
" <td> 7</td>\n",
" <td> 10</td>\n",
" <td> 8</td>\n",
" <td> 6</td>\n",
" <td> 8</td>\n",
" <td> 7</td>\n",
" <td> 14</td>\n",
" <td> 14</td>\n",
" <td> 14</td>\n",
" <td> 11</td>\n",
" <td> 9.9</td>\n",
" <td> 11</td>\n",
" <td> 11</td>\n",
" <td> 0</td>\n",
" <td> 0</td>\n",
" <td> 0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7 </th>\n",
" <td> Pika Pikachus</td>\n",
" <td> 8</td>\n",
" <td> 4</td>\n",
" <td> 6</td>\n",
" <td> 13</td>\n",
" <td> 2</td>\n",
" <td> 8</td>\n",
" <td> 8</td>\n",
" <td> 9</td>\n",
" <td> 6</td>\n",
" <td> 11</td>\n",
" <td> 7.5</td>\n",
" <td> 8</td>\n",
" <td> 10</td>\n",
" <td>-2</td>\n",
" <td> 2</td>\n",
" <td> 0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8 </th>\n",
" <td> BenDover</td>\n",
" <td> 9</td>\n",
" <td> 7</td>\n",
" <td> 2</td>\n",
" <td> 9</td>\n",
" <td> 9</td>\n",
" <td> 11</td>\n",
" <td> 9</td>\n",
" <td> 4</td>\n",
" <td> 8</td>\n",
" <td> 13</td>\n",
" <td> 8.1</td>\n",
" <td> 10</td>\n",
" <td> 8</td>\n",
" <td> 2</td>\n",
" <td> 2</td>\n",
" <td> 0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9 </th>\n",
" <td> Fresh Baked Brownies</td>\n",
" <td> 10</td>\n",
" <td> 11</td>\n",
" <td> 9</td>\n",
" <td> 8</td>\n",
" <td> 10</td>\n",
" <td> 9</td>\n",
" <td> 10</td>\n",
" <td> 1</td>\n",
" <td> 1</td>\n",
" <td> 4</td>\n",
" <td> 7.3</td>\n",
" <td> 7</td>\n",
" <td> 9</td>\n",
" <td>-2</td>\n",
" <td> 3</td>\n",
" <td> 2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td> First Place</td>\n",
" <td> 11</td>\n",
" <td> 2</td>\n",
" <td> 14</td>\n",
" <td> 11</td>\n",
" <td> 5</td>\n",
" <td> 10</td>\n",
" <td> 5</td>\n",
" <td> 5</td>\n",
" <td> 6</td>\n",
" <td> 3</td>\n",
" <td> 7.2</td>\n",
" <td> 6</td>\n",
" <td> 3</td>\n",
" <td> 3</td>\n",
" <td> 5</td>\n",
" <td> 0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td> EWeb FTW</td>\n",
" <td> 12</td>\n",
" <td> 12</td>\n",
" <td> 13</td>\n",
" <td> 13</td>\n",
" <td> 13</td>\n",
" <td> 14</td>\n",
" <td> 6</td>\n",
" <td> 7</td>\n",
" <td> 12</td>\n",
" <td> 4</td>\n",
" <td> 10.6</td>\n",
" <td> 12</td>\n",
" <td> 13</td>\n",
" <td>-1</td>\n",
" <td> 1</td>\n",
" <td> 0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td> HERRO. THIS IS DOG</td>\n",
" <td> 13</td>\n",
" <td> 13</td>\n",
" <td> 5</td>\n",
" <td> 5</td>\n",
" <td> 12</td>\n",
" <td> 12</td>\n",
" <td> 12</td>\n",
" <td> 13</td>\n",
" <td> 13</td>\n",
" <td> 13</td>\n",
" <td> 11.1</td>\n",
" <td> 13</td>\n",
" <td> 12</td>\n",
" <td> 1</td>\n",
" <td> 2</td>\n",
" <td> 0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td> Team Leaddz</td>\n",
" <td> 14</td>\n",
" <td> 14</td>\n",
" <td> 11</td>\n",
" <td> 12</td>\n",
" <td> 14</td>\n",
" <td> 13</td>\n",
" <td> 13</td>\n",
" <td> 10</td>\n",
" <td> 11</td>\n",
" <td> 8</td>\n",
" <td> 12.0</td>\n",
" <td> 14</td>\n",
" <td> 14</td>\n",
" <td> 0</td>\n",
" <td> 0</td>\n",
" <td> 0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>14 rows \u00d7 17 columns</p>\n",
"</div>"
],
"output_type": "pyout",
"prompt_number": 8,
"text": [
" Player G A +/- PIM PPP SOG W GAA SV% SHO AVG Rank Yahoo! Diff Top 5 First\n",
"0 Dwayne Gretskeet 1 5 7 2 1 1 1 5 2 1 2.6 1 2 -1 9 5\n",
"1 the favorites 2 9 1 1 11 4 3 2 4 1 3.8 2 4 -2 8 3\n",
"2 Mikhail's Team 3 8 3 10 7 5 11 11 10 9 7.7 9 6 3 3 0\n",
"3 Pmoda 4 2 10 3 4 2 4 3 9 6 4.7 3 1 2 7 0\n",
"4 South Park Cows 5 5 4 7 6 6 2 8 2 6 5.1 4 7 -3 5 0\n",
"5 JoshHum 6 1 12 4 2 3 6 12 4 10 6.0 5 5 0 5 1\n",
"6 Matthew's Team 7 10 8 6 8 7 14 14 14 11 9.9 11 11 0 0 0\n",
"7 Pika Pikachus 8 4 6 13 2 8 8 9 6 11 7.5 8 10 -2 2 0\n",
"8 BenDover 9 7 2 9 9 11 9 4 8 13 8.1 10 8 2 2 0\n",
"9 Fresh Baked Brownies 10 11 9 8 10 9 10 1 1 4 7.3 7 9 -2 3 2\n",
"10 First Place 11 2 14 11 5 10 5 5 6 3 7.2 6 3 3 5 0\n",
"11 EWeb FTW 12 12 13 13 13 14 6 7 12 4 10.6 12 13 -1 1 0\n",
"12 HERRO. THIS IS DOG 13 13 5 5 12 12 12 13 13 13 11.1 13 12 1 2 0\n",
"13 Team Leaddz 14 14 11 12 14 13 13 10 11 8 12.0 14 14 0 0 0\n",
"\n",
"[14 rows x 17 columns]"
]
}
],
"prompt_number": 8
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Well, that wasn't so simple. I've tried finding a nice pandas-esque way of doing that without a for-loop but I couldn't figure it out. Anyone have any ideas?\n",
"\n",
"To get the Bottom 5 and Last Place, we will again need the inversely ranked matrices:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"inverse_ranked_data = player_data.rank(method=\"min\", numeric_only=True, ascending=True)\n",
"inverse_ranked_data[\"GAA\"] = player_data[\"GAA\"].rank(method=\"min\", ascending=False) # For GAA lower is actually better, so we rank in inverse order\n",
"inverse_ranked_data.insert(0, \"Player\", player_data[\"Player\"]) # Player names got lost in the ranking, since we said numeric only. \n",
"inverse_ranked_data"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Player</th>\n",
" <th>G</th>\n",
" <th>A</th>\n",
" <th>+/-</th>\n",
" <th>PIM</th>\n",
" <th>PPP</th>\n",
" <th>SOG</th>\n",
" <th>W</th>\n",
" <th>GAA</th>\n",
" <th>SV%</th>\n",
" <th>SHO</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0 </th>\n",
" <td> Dwayne Gretskeet</td>\n",
" <td> 14</td>\n",
" <td> 9</td>\n",
" <td> 8</td>\n",
" <td> 13</td>\n",
" <td> 14</td>\n",
" <td> 14</td>\n",
" <td> 14</td>\n",
" <td> 9</td>\n",
" <td> 12</td>\n",
" <td> 13</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1 </th>\n",
" <td> the favorites</td>\n",
" <td> 13</td>\n",
" <td> 6</td>\n",
" <td> 14</td>\n",
" <td> 14</td>\n",
" <td> 4</td>\n",
" <td> 11</td>\n",
" <td> 12</td>\n",
" <td> 13</td>\n",
" <td> 10</td>\n",
" <td> 13</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2 </th>\n",
" <td> Mikhail's Team</td>\n",
" <td> 12</td>\n",
" <td> 7</td>\n",
" <td> 12</td>\n",
" <td> 5</td>\n",
" <td> 8</td>\n",
" <td> 10</td>\n",
" <td> 4</td>\n",
" <td> 4</td>\n",
" <td> 5</td>\n",
" <td> 6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3 </th>\n",
" <td> Pmoda</td>\n",
" <td> 11</td>\n",
" <td> 12</td>\n",
" <td> 5</td>\n",
" <td> 12</td>\n",
" <td> 11</td>\n",
" <td> 13</td>\n",
" <td> 11</td>\n",
" <td> 12</td>\n",
" <td> 6</td>\n",
" <td> 8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4 </th>\n",
" <td> South Park Cows</td>\n",
" <td> 10</td>\n",
" <td> 9</td>\n",
" <td> 11</td>\n",
" <td> 8</td>\n",
" <td> 9</td>\n",
" <td> 9</td>\n",
" <td> 13</td>\n",
" <td> 7</td>\n",
" <td> 12</td>\n",
" <td> 8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5 </th>\n",
" <td> JoshHum</td>\n",
" <td> 9</td>\n",
" <td> 14</td>\n",
" <td> 3</td>\n",
" <td> 11</td>\n",
" <td> 12</td>\n",
" <td> 12</td>\n",
" <td> 8</td>\n",
" <td> 3</td>\n",
" <td> 10</td>\n",
" <td> 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6 </th>\n",
" <td> Matthew's Team</td>\n",
" <td> 8</td>\n",
" <td> 5</td>\n",
" <td> 7</td>\n",
" <td> 9</td>\n",
" <td> 7</td>\n",
" <td> 8</td>\n",
" <td> 1</td>\n",
" <td> 1</td>\n",
" <td> 1</td>\n",
" <td> 3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7 </th>\n",
" <td> Pika Pikachus</td>\n",
" <td> 7</td>\n",
" <td> 11</td>\n",
" <td> 9</td>\n",
" <td> 1</td>\n",
" <td> 12</td>\n",
" <td> 7</td>\n",
" <td> 7</td>\n",
" <td> 6</td>\n",
" <td> 8</td>\n",
" <td> 3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8 </th>\n",
" <td> BenDover</td>\n",
" <td> 6</td>\n",
" <td> 8</td>\n",
" <td> 13</td>\n",
" <td> 6</td>\n",
" <td> 6</td>\n",
" <td> 4</td>\n",
" <td> 6</td>\n",
" <td> 11</td>\n",
" <td> 7</td>\n",
" <td> 1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9 </th>\n",
" <td> Fresh Baked Brownies</td>\n",
" <td> 5</td>\n",
" <td> 4</td>\n",
" <td> 6</td>\n",
" <td> 7</td>\n",
" <td> 5</td>\n",
" <td> 6</td>\n",
" <td> 5</td>\n",
" <td> 14</td>\n",
" <td> 14</td>\n",
" <td> 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td> First Place</td>\n",
" <td> 4</td>\n",
" <td> 12</td>\n",
" <td> 1</td>\n",
" <td> 4</td>\n",
" <td> 10</td>\n",
" <td> 5</td>\n",
" <td> 10</td>\n",
" <td> 9</td>\n",
" <td> 8</td>\n",
" <td> 12</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td> EWeb FTW</td>\n",
" <td> 3</td>\n",
" <td> 3</td>\n",
" <td> 2</td>\n",
" <td> 1</td>\n",
" <td> 2</td>\n",
" <td> 1</td>\n",
" <td> 8</td>\n",
" <td> 8</td>\n",
" <td> 3</td>\n",
" <td> 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td> HERRO. THIS IS DOG</td>\n",
" <td> 2</td>\n",
" <td> 2</td>\n",
" <td> 10</td>\n",
" <td> 10</td>\n",
" <td> 3</td>\n",
" <td> 3</td>\n",
" <td> 3</td>\n",
" <td> 2</td>\n",
" <td> 2</td>\n",
" <td> 1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td> Team Leaddz</td>\n",
" <td> 1</td>\n",
" <td> 1</td>\n",
" <td> 4</td>\n",
" <td> 3</td>\n",
" <td> 1</td>\n",
" <td> 2</td>\n",
" <td> 2</td>\n",
" <td> 5</td>\n",
" <td> 4</td>\n",
" <td> 7</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>14 rows \u00d7 11 columns</p>\n",
"</div>"
],
"output_type": "pyout",
"prompt_number": 9,
"text": [
" Player G A +/- PIM PPP SOG W GAA SV% SHO\n",
"0 Dwayne Gretskeet 14 9 8 13 14 14 14 9 12 13\n",
"1 the favorites 13 6 14 14 4 11 12 13 10 13\n",
"2 Mikhail's Team 12 7 12 5 8 10 4 4 5 6\n",
"3 Pmoda 11 12 5 12 11 13 11 12 6 8\n",
"4 South Park Cows 10 9 11 8 9 9 13 7 12 8\n",
"5 JoshHum 9 14 3 11 12 12 8 3 10 5\n",
"6 Matthew's Team 8 5 7 9 7 8 1 1 1 3\n",
"7 Pika Pikachus 7 11 9 1 12 7 7 6 8 3\n",
"8 BenDover 6 8 13 6 6 4 6 11 7 1\n",
"9 Fresh Baked Brownies 5 4 6 7 5 6 5 14 14 10\n",
"10 First Place 4 12 1 4 10 5 10 9 8 12\n",
"11 EWeb FTW 3 3 2 1 2 1 8 8 3 10\n",
"12 HERRO. THIS IS DOG 2 2 10 10 3 3 3 2 2 1\n",
"13 Team Leaddz 1 1 4 3 1 2 2 5 4 7\n",
"\n",
"[14 rows x 11 columns]"
]
}
],
"prompt_number": 9
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's get the Last place and Bottom 5 columns:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"transposed = inverse_ranked_data.transpose()\n",
"\n",
"top_five = [0 for x in range(len(ranked_data))]\n",
"first = [0 for x in range(len(ranked_data))]\n",
"\n",
"for i in range(14):\n",
" for rank in transposed[i][1:11]:\n",
" if rank < 6:\n",
" top_five[i] += 1\n",
" if rank == 1:\n",
" first[i] += 1\n",
" ranked_data[\"Bottom 5\"] = top_five \n",
" ranked_data[\"Last\"] = first\n",
"\n",
"ranked_data"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Player</th>\n",
" <th>G</th>\n",
" <th>A</th>\n",
" <th>+/-</th>\n",
" <th>PIM</th>\n",
" <th>PPP</th>\n",
" <th>SOG</th>\n",
" <th>W</th>\n",
" <th>GAA</th>\n",
" <th>SV%</th>\n",
" <th>SHO</th>\n",
" <th>AVG</th>\n",
" <th>Rank</th>\n",
" <th>Yahoo!</th>\n",
" <th>Diff</th>\n",
" <th>Top 5</th>\n",
" <th>First</th>\n",
" <th>Bottom 5</th>\n",
" <th>Last</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0 </th>\n",
" <td> Dwayne Gretskeet</td>\n",
" <td> 1</td>\n",
" <td> 5</td>\n",
" <td> 7</td>\n",
" <td> 2</td>\n",
" <td> 1</td>\n",
" <td> 1</td>\n",
" <td> 1</td>\n",
" <td> 5</td>\n",
" <td> 2</td>\n",
" <td> 1</td>\n",
" <td> 2.6</td>\n",
" <td> 1</td>\n",
" <td> 2</td>\n",
" <td>-1</td>\n",
" <td> 9</td>\n",
" <td> 5</td>\n",
" <td> 0</td>\n",
" <td> 0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1 </th>\n",
" <td> the favorites</td>\n",
" <td> 2</td>\n",
" <td> 9</td>\n",
" <td> 1</td>\n",
" <td> 1</td>\n",
" <td> 11</td>\n",
" <td> 4</td>\n",
" <td> 3</td>\n",
" <td> 2</td>\n",
" <td> 4</td>\n",
" <td> 1</td>\n",
" <td> 3.8</td>\n",
" <td> 2</td>\n",
" <td> 4</td>\n",
" <td>-2</td>\n",
" <td> 8</td>\n",
" <td> 3</td>\n",
" <td> 1</td>\n",
" <td> 0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2 </th>\n",
" <td> Mikhail's Team</td>\n",
" <td> 3</td>\n",
" <td> 8</td>\n",
" <td> 3</td>\n",
" <td> 10</td>\n",
" <td> 7</td>\n",
" <td> 5</td>\n",
" <td> 11</td>\n",
" <td> 11</td>\n",
" <td> 10</td>\n",
" <td> 9</td>\n",
" <td> 7.7</td>\n",
" <td> 9</td>\n",
" <td> 6</td>\n",
" <td> 3</td>\n",
" <td> 3</td>\n",
" <td> 0</td>\n",
" <td> 4</td>\n",
" <td> 0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3 </th>\n",
" <td> Pmoda</td>\n",
" <td> 4</td>\n",
" <td> 2</td>\n",
" <td> 10</td>\n",
" <td> 3</td>\n",
" <td> 4</td>\n",
" <td> 2</td>\n",
" <td> 4</td>\n",
" <td> 3</td>\n",
" <td> 9</td>\n",
" <td> 6</td>\n",
" <td> 4.7</td>\n",
" <td> 3</td>\n",
" <td> 1</td>\n",
" <td> 2</td>\n",
" <td> 7</td>\n",
" <td> 0</td>\n",
" <td> 1</td>\n",
" <td> 0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4 </th>\n",
" <td> South Park Cows</td>\n",
" <td> 5</td>\n",
" <td> 5</td>\n",
" <td> 4</td>\n",
" <td> 7</td>\n",
" <td> 6</td>\n",
" <td> 6</td>\n",
" <td> 2</td>\n",
" <td> 8</td>\n",
" <td> 2</td>\n",
" <td> 6</td>\n",
" <td> 5.1</td>\n",
" <td> 4</td>\n",
" <td> 7</td>\n",
" <td>-3</td>\n",
" <td> 5</td>\n",
" <td> 0</td>\n",
" <td> 0</td>\n",
" <td> 0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5 </th>\n",
" <td> JoshHum</td>\n",
" <td> 6</td>\n",
" <td> 1</td>\n",
" <td> 12</td>\n",
" <td> 4</td>\n",
" <td> 2</td>\n",
" <td> 3</td>\n",
" <td> 6</td>\n",
" <td> 12</td>\n",
" <td> 4</td>\n",
" <td> 10</td>\n",
" <td> 6.0</td>\n",
" <td> 5</td>\n",
" <td> 5</td>\n",
" <td> 0</td>\n",
" <td> 5</td>\n",
" <td> 1</td>\n",
" <td> 3</td>\n",
" <td> 0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6 </th>\n",
" <td> Matthew's Team</td>\n",
" <td> 7</td>\n",
" <td> 10</td>\n",
" <td> 8</td>\n",
" <td> 6</td>\n",
" <td> 8</td>\n",
" <td> 7</td>\n",
" <td> 14</td>\n",
" <td> 14</td>\n",
" <td> 14</td>\n",
" <td> 11</td>\n",
" <td> 9.9</td>\n",
" <td> 11</td>\n",
" <td> 11</td>\n",
" <td> 0</td>\n",
" <td> 0</td>\n",
" <td> 0</td>\n",
" <td> 5</td>\n",
" <td> 3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7 </th>\n",
" <td> Pika Pikachus</td>\n",
" <td> 8</td>\n",
" <td> 4</td>\n",
" <td> 6</td>\n",
" <td> 13</td>\n",
" <td> 2</td>\n",
" <td> 8</td>\n",
" <td> 8</td>\n",
" <td> 9</td>\n",
" <td> 6</td>\n",
" <td> 11</td>\n",
" <td> 7.5</td>\n",
" <td> 8</td>\n",
" <td> 10</td>\n",
" <td>-2</td>\n",
" <td> 2</td>\n",
" <td> 0</td>\n",
" <td> 2</td>\n",
" <td> 1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8 </th>\n",
" <td> BenDover</td>\n",
" <td> 9</td>\n",
" <td> 7</td>\n",
" <td> 2</td>\n",
" <td> 9</td>\n",
" <td> 9</td>\n",
" <td> 11</td>\n",
" <td> 9</td>\n",
" <td> 4</td>\n",
" <td> 8</td>\n",
" <td> 13</td>\n",
" <td> 8.1</td>\n",
" <td> 10</td>\n",
" <td> 8</td>\n",
" <td> 2</td>\n",
" <td> 2</td>\n",
" <td> 0</td>\n",
" <td> 2</td>\n",
" <td> 1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9 </th>\n",
" <td> Fresh Baked Brownies</td>\n",
" <td> 10</td>\n",
" <td> 11</td>\n",
" <td> 9</td>\n",
" <td> 8</td>\n",
" <td> 10</td>\n",
" <td> 9</td>\n",
" <td> 10</td>\n",
" <td> 1</td>\n",
" <td> 1</td>\n",
" <td> 4</td>\n",
" <td> 7.3</td>\n",
" <td> 7</td>\n",
" <td> 9</td>\n",
" <td>-2</td>\n",
" <td> 3</td>\n",
" <td> 2</td>\n",
" <td> 4</td>\n",
" <td> 0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td> First Place</td>\n",
" <td> 11</td>\n",
" <td> 2</td>\n",
" <td> 14</td>\n",
" <td> 11</td>\n",
" <td> 5</td>\n",
" <td> 10</td>\n",
" <td> 5</td>\n",
" <td> 5</td>\n",
" <td> 6</td>\n",
" <td> 3</td>\n",
" <td> 7.2</td>\n",
" <td> 6</td>\n",
" <td> 3</td>\n",
" <td> 3</td>\n",
" <td> 5</td>\n",
" <td> 0</td>\n",
" <td> 4</td>\n",
" <td> 1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td> EWeb FTW</td>\n",
" <td> 12</td>\n",
" <td> 12</td>\n",
" <td> 13</td>\n",
" <td> 13</td>\n",
" <td> 13</td>\n",
" <td> 14</td>\n",
" <td> 6</td>\n",
" <td> 7</td>\n",
" <td> 12</td>\n",
" <td> 4</td>\n",
" <td> 10.6</td>\n",
" <td> 12</td>\n",
" <td> 13</td>\n",
" <td>-1</td>\n",
" <td> 1</td>\n",
" <td> 0</td>\n",
" <td> 7</td>\n",
" <td> 2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td> HERRO. THIS IS DOG</td>\n",
" <td> 13</td>\n",
" <td> 13</td>\n",
" <td> 5</td>\n",
" <td> 5</td>\n",
" <td> 12</td>\n",
" <td> 12</td>\n",
" <td> 12</td>\n",
" <td> 13</td>\n",
" <td> 13</td>\n",
" <td> 13</td>\n",
" <td> 11.1</td>\n",
" <td> 13</td>\n",
" <td> 12</td>\n",
" <td> 1</td>\n",
" <td> 2</td>\n",
" <td> 0</td>\n",
" <td> 8</td>\n",
" <td> 1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td> Team Leaddz</td>\n",
" <td> 14</td>\n",
" <td> 14</td>\n",
" <td> 11</td>\n",
" <td> 12</td>\n",
" <td> 14</td>\n",
" <td> 13</td>\n",
" <td> 13</td>\n",
" <td> 10</td>\n",
" <td> 11</td>\n",
" <td> 8</td>\n",
" <td> 12.0</td>\n",
" <td> 14</td>\n",
" <td> 14</td>\n",
" <td> 0</td>\n",
" <td> 0</td>\n",
" <td> 0</td>\n",
" <td> 9</td>\n",
" <td> 3</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>14 rows \u00d7 19 columns</p>\n",
"</div>"
],
"output_type": "pyout",
"prompt_number": 10,
"text": [
" Player G A +/- PIM PPP SOG W GAA SV% SHO AVG Rank Yahoo! Diff Top 5 First Bottom 5 Last\n",
"0 Dwayne Gretskeet 1 5 7 2 1 1 1 5 2 1 2.6 1 2 -1 9 5 0 0\n",
"1 the favorites 2 9 1 1 11 4 3 2 4 1 3.8 2 4 -2 8 3 1 0\n",
"2 Mikhail's Team 3 8 3 10 7 5 11 11 10 9 7.7 9 6 3 3 0 4 0\n",
"3 Pmoda 4 2 10 3 4 2 4 3 9 6 4.7 3 1 2 7 0 1 0\n",
"4 South Park Cows 5 5 4 7 6 6 2 8 2 6 5.1 4 7 -3 5 0 0 0\n",
"5 JoshHum 6 1 12 4 2 3 6 12 4 10 6.0 5 5 0 5 1 3 0\n",
"6 Matthew's Team 7 10 8 6 8 7 14 14 14 11 9.9 11 11 0 0 0 5 3\n",
"7 Pika Pikachus 8 4 6 13 2 8 8 9 6 11 7.5 8 10 -2 2 0 2 1\n",
"8 BenDover 9 7 2 9 9 11 9 4 8 13 8.1 10 8 2 2 0 2 1\n",
"9 Fresh Baked Brownies 10 11 9 8 10 9 10 1 1 4 7.3 7 9 -2 3 2 4 0\n",
"10 First Place 11 2 14 11 5 10 5 5 6 3 7.2 6 3 3 5 0 4 1\n",
"11 EWeb FTW 12 12 13 13 13 14 6 7 12 4 10.6 12 13 -1 1 0 7 2\n",
"12 HERRO. THIS IS DOG 13 13 5 5 12 12 12 13 13 13 11.1 13 12 1 2 0 8 1\n",
"13 Team Leaddz 14 14 11 12 14 13 13 10 11 8 12.0 14 14 0 0 0 9 3\n",
"\n",
"[14 rows x 19 columns]"
]
}
],
"prompt_number": 10
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Conclusion"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"And there we have it. Aside from the last few columns (First, Last, Top 5, Bottom 5), pandas greatly simplified our lives for processing this type of data. \n",
"\n",
"Thanks for reading!"
]
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"tl;dr"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"pandas is legit; fantasy hockey stats are fun to play around with; the end"
]
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment