Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save ICBacon/7987c5c066bc8a14e384 to your computer and use it in GitHub Desktop.

Select an option

Save ICBacon/7987c5c066bc8a14e384 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"metadata": {},
"cell_type": "markdown",
"source": "# Ordering Key Value Objects using Real Data\n\nUse [PyPi releases data for Bokeh](https://pypi.python.org/pypi/bokeh/json) create ordered keys from an unordered JSON object."
},
{
"metadata": {
"trusted": true,
"collapsed": true
},
"cell_type": "code",
"source": "import pandas as pd\nimport requests",
"execution_count": 46,
"outputs": []
},
{
"metadata": {
"trusted": true,
"collapsed": true
},
"cell_type": "code",
"source": "package = 'pandas'",
"execution_count": 47,
"outputs": []
},
{
"metadata": {
"trusted": true,
"collapsed": true
},
"cell_type": "code",
"source": "response = requests.get(\n url = 'https://pypi.python.org/pypi/%s/json' % package\n)\ndata = response.json()",
"execution_count": 48,
"outputs": []
},
{
"metadata": {},
"cell_type": "markdown",
"source": "> The unordered objects are in the key ``releases``"
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "releases = data['releases']",
"execution_count": 49,
"outputs": []
},
{
"metadata": {},
"cell_type": "markdown",
"source": "> The releases use [Semantic Versionsing](http://semver.org/)"
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "releases.keys()",
"execution_count": 53,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": "dict_keys(['0.16.0', '0.1', '0.5.0', '0.10.0', '0.8.0rc1', '0.9.0', '0.2', '0.6.1', '0.7.2', '0.4.1', '0.7.3', '0.8.0', '0.15.0', '0.12.0', '0.8.0rc2', '0.15.1', '0.11.0', '0.14.1', '0.14.0', '0.16.2', '0.2beta', '0.3.0', '0.9.1', '0.3.0.beta', '0.4.2', '0.10.1', '0.16.1', '0.6.0', '0.13.0', '0.7.0rc1', '0.2b1', '0.4.0', '0.15.2', '0.8.1', '0.4.3', '0.3.0.beta2', '0.13.1', '0.7.1', '0.7.0'])"
},
"metadata": {},
"execution_count": 53
}
]
},
{
"metadata": {
"trusted": true,
"collapsed": true
},
"cell_type": "code",
"source": "def extract_version_number( version_string ):\n \"\"\"\n Remove the leading number part of an alphanumeric string that begins with a number\n \"\"\"\n version_number = ''\n for character in version_string:\n if character.isdigit():\n version_number += character\n else:\n break\n return int( version_number )",
"execution_count": 62,
"outputs": []
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "versions = []\nfor version in releases.keys():\n try:\n major, minor, patch = version.split('.',2)\n except:\n patch = '0'\n major, minor = version.split('.',1)\n versions.append({\n 'major': extract_version_number(major),\n 'minor': extract_version_number(minor),\n 'patch': extract_version_number(patch),\n 'key': version\n })",
"execution_count": 64,
"outputs": []
},
{
"metadata": {},
"cell_type": "markdown",
"source": "> Create a pandas DataFrame"
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "df = pd.DataFrame(versions)\ndf",
"execution_count": 65,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": " key major minor patch\n0 0.16.0 0 16 0\n1 0.1 0 1 0\n2 0.5.0 0 5 0\n3 0.10.0 0 10 0\n4 0.8.0rc1 0 8 0\n5 0.9.0 0 9 0\n6 0.2 0 2 0\n7 0.6.1 0 6 1\n8 0.7.2 0 7 2\n9 0.4.1 0 4 1\n10 0.7.3 0 7 3\n11 0.8.0 0 8 0\n12 0.15.0 0 15 0\n13 0.12.0 0 12 0\n14 0.8.0rc2 0 8 0\n15 0.15.1 0 15 1\n16 0.11.0 0 11 0\n17 0.14.1 0 14 1\n18 0.14.0 0 14 0\n19 0.16.2 0 16 2\n20 0.2beta 0 2 0\n21 0.3.0 0 3 0\n22 0.9.1 0 9 1\n23 0.3.0.beta 0 3 0\n24 0.4.2 0 4 2\n25 0.10.1 0 10 1\n26 0.16.1 0 16 1\n27 0.6.0 0 6 0\n28 0.13.0 0 13 0\n29 0.7.0rc1 0 7 0\n30 0.2b1 0 2 0\n31 0.4.0 0 4 0\n32 0.15.2 0 15 2\n33 0.8.1 0 8 1\n34 0.4.3 0 4 3\n35 0.3.0.beta2 0 3 0\n36 0.13.1 0 13 1\n37 0.7.1 0 7 1\n38 0.7.0 0 7 0",
"text/html": "<div>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>key</th>\n <th>major</th>\n <th>minor</th>\n <th>patch</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>0.16.0</td>\n <td>0</td>\n <td>16</td>\n <td>0</td>\n </tr>\n <tr>\n <th>1</th>\n <td>0.1</td>\n <td>0</td>\n <td>1</td>\n <td>0</td>\n </tr>\n <tr>\n <th>2</th>\n <td>0.5.0</td>\n <td>0</td>\n <td>5</td>\n <td>0</td>\n </tr>\n <tr>\n <th>3</th>\n <td>0.10.0</td>\n <td>0</td>\n <td>10</td>\n <td>0</td>\n </tr>\n <tr>\n <th>4</th>\n <td>0.8.0rc1</td>\n <td>0</td>\n <td>8</td>\n <td>0</td>\n </tr>\n <tr>\n <th>5</th>\n <td>0.9.0</td>\n <td>0</td>\n <td>9</td>\n <td>0</td>\n </tr>\n <tr>\n <th>6</th>\n <td>0.2</td>\n <td>0</td>\n <td>2</td>\n <td>0</td>\n </tr>\n <tr>\n <th>7</th>\n <td>0.6.1</td>\n <td>0</td>\n <td>6</td>\n <td>1</td>\n </tr>\n <tr>\n <th>8</th>\n <td>0.7.2</td>\n <td>0</td>\n <td>7</td>\n <td>2</td>\n </tr>\n <tr>\n <th>9</th>\n <td>0.4.1</td>\n <td>0</td>\n <td>4</td>\n <td>1</td>\n </tr>\n <tr>\n <th>10</th>\n <td>0.7.3</td>\n <td>0</td>\n <td>7</td>\n <td>3</td>\n </tr>\n <tr>\n <th>11</th>\n <td>0.8.0</td>\n <td>0</td>\n <td>8</td>\n <td>0</td>\n </tr>\n <tr>\n <th>12</th>\n <td>0.15.0</td>\n <td>0</td>\n <td>15</td>\n <td>0</td>\n </tr>\n <tr>\n <th>13</th>\n <td>0.12.0</td>\n <td>0</td>\n <td>12</td>\n <td>0</td>\n </tr>\n <tr>\n <th>14</th>\n <td>0.8.0rc2</td>\n <td>0</td>\n <td>8</td>\n <td>0</td>\n </tr>\n <tr>\n <th>15</th>\n <td>0.15.1</td>\n <td>0</td>\n <td>15</td>\n <td>1</td>\n </tr>\n <tr>\n <th>16</th>\n <td>0.11.0</td>\n <td>0</td>\n <td>11</td>\n <td>0</td>\n </tr>\n <tr>\n <th>17</th>\n <td>0.14.1</td>\n <td>0</td>\n <td>14</td>\n <td>1</td>\n </tr>\n <tr>\n <th>18</th>\n <td>0.14.0</td>\n <td>0</td>\n <td>14</td>\n <td>0</td>\n </tr>\n <tr>\n <th>19</th>\n <td>0.16.2</td>\n <td>0</td>\n <td>16</td>\n <td>2</td>\n </tr>\n <tr>\n <th>20</th>\n <td>0.2beta</td>\n <td>0</td>\n <td>2</td>\n <td>0</td>\n </tr>\n <tr>\n <th>21</th>\n <td>0.3.0</td>\n <td>0</td>\n <td>3</td>\n <td>0</td>\n </tr>\n <tr>\n <th>22</th>\n <td>0.9.1</td>\n <td>0</td>\n <td>9</td>\n <td>1</td>\n </tr>\n <tr>\n <th>23</th>\n <td>0.3.0.beta</td>\n <td>0</td>\n <td>3</td>\n <td>0</td>\n </tr>\n <tr>\n <th>24</th>\n <td>0.4.2</td>\n <td>0</td>\n <td>4</td>\n <td>2</td>\n </tr>\n <tr>\n <th>25</th>\n <td>0.10.1</td>\n <td>0</td>\n <td>10</td>\n <td>1</td>\n </tr>\n <tr>\n <th>26</th>\n <td>0.16.1</td>\n <td>0</td>\n <td>16</td>\n <td>1</td>\n </tr>\n <tr>\n <th>27</th>\n <td>0.6.0</td>\n <td>0</td>\n <td>6</td>\n <td>0</td>\n </tr>\n <tr>\n <th>28</th>\n <td>0.13.0</td>\n <td>0</td>\n <td>13</td>\n <td>0</td>\n </tr>\n <tr>\n <th>29</th>\n <td>0.7.0rc1</td>\n <td>0</td>\n <td>7</td>\n <td>0</td>\n </tr>\n <tr>\n <th>30</th>\n <td>0.2b1</td>\n <td>0</td>\n <td>2</td>\n <td>0</td>\n </tr>\n <tr>\n <th>31</th>\n <td>0.4.0</td>\n <td>0</td>\n <td>4</td>\n <td>0</td>\n </tr>\n <tr>\n <th>32</th>\n <td>0.15.2</td>\n <td>0</td>\n <td>15</td>\n <td>2</td>\n </tr>\n <tr>\n <th>33</th>\n <td>0.8.1</td>\n <td>0</td>\n <td>8</td>\n <td>1</td>\n </tr>\n <tr>\n <th>34</th>\n <td>0.4.3</td>\n <td>0</td>\n <td>4</td>\n <td>3</td>\n </tr>\n <tr>\n <th>35</th>\n <td>0.3.0.beta2</td>\n <td>0</td>\n <td>3</td>\n <td>0</td>\n </tr>\n <tr>\n <th>36</th>\n <td>0.13.1</td>\n <td>0</td>\n <td>13</td>\n <td>1</td>\n </tr>\n <tr>\n <th>37</th>\n <td>0.7.1</td>\n <td>0</td>\n <td>7</td>\n <td>1</td>\n </tr>\n <tr>\n <th>38</th>\n <td>0.7.0</td>\n <td>0</td>\n <td>7</td>\n <td>0</td>\n </tr>\n </tbody>\n</table>\n</div>"
},
"metadata": {},
"execution_count": 65
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "> Sort the DataFrame based on version "
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "df.sort(['major','minor','patch'])",
"execution_count": 66,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": " key major minor patch\n1 0.1 0 1 0\n6 0.2 0 2 0\n20 0.2beta 0 2 0\n30 0.2b1 0 2 0\n21 0.3.0 0 3 0\n23 0.3.0.beta 0 3 0\n35 0.3.0.beta2 0 3 0\n31 0.4.0 0 4 0\n9 0.4.1 0 4 1\n24 0.4.2 0 4 2\n34 0.4.3 0 4 3\n2 0.5.0 0 5 0\n27 0.6.0 0 6 0\n7 0.6.1 0 6 1\n29 0.7.0rc1 0 7 0\n38 0.7.0 0 7 0\n37 0.7.1 0 7 1\n8 0.7.2 0 7 2\n10 0.7.3 0 7 3\n4 0.8.0rc1 0 8 0\n11 0.8.0 0 8 0\n14 0.8.0rc2 0 8 0\n33 0.8.1 0 8 1\n5 0.9.0 0 9 0\n22 0.9.1 0 9 1\n3 0.10.0 0 10 0\n25 0.10.1 0 10 1\n16 0.11.0 0 11 0\n13 0.12.0 0 12 0\n28 0.13.0 0 13 0\n36 0.13.1 0 13 1\n18 0.14.0 0 14 0\n17 0.14.1 0 14 1\n12 0.15.0 0 15 0\n15 0.15.1 0 15 1\n32 0.15.2 0 15 2\n0 0.16.0 0 16 0\n26 0.16.1 0 16 1\n19 0.16.2 0 16 2",
"text/html": "<div>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>key</th>\n <th>major</th>\n <th>minor</th>\n <th>patch</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>1</th>\n <td>0.1</td>\n <td>0</td>\n <td>1</td>\n <td>0</td>\n </tr>\n <tr>\n <th>6</th>\n <td>0.2</td>\n <td>0</td>\n <td>2</td>\n <td>0</td>\n </tr>\n <tr>\n <th>20</th>\n <td>0.2beta</td>\n <td>0</td>\n <td>2</td>\n <td>0</td>\n </tr>\n <tr>\n <th>30</th>\n <td>0.2b1</td>\n <td>0</td>\n <td>2</td>\n <td>0</td>\n </tr>\n <tr>\n <th>21</th>\n <td>0.3.0</td>\n <td>0</td>\n <td>3</td>\n <td>0</td>\n </tr>\n <tr>\n <th>23</th>\n <td>0.3.0.beta</td>\n <td>0</td>\n <td>3</td>\n <td>0</td>\n </tr>\n <tr>\n <th>35</th>\n <td>0.3.0.beta2</td>\n <td>0</td>\n <td>3</td>\n <td>0</td>\n </tr>\n <tr>\n <th>31</th>\n <td>0.4.0</td>\n <td>0</td>\n <td>4</td>\n <td>0</td>\n </tr>\n <tr>\n <th>9</th>\n <td>0.4.1</td>\n <td>0</td>\n <td>4</td>\n <td>1</td>\n </tr>\n <tr>\n <th>24</th>\n <td>0.4.2</td>\n <td>0</td>\n <td>4</td>\n <td>2</td>\n </tr>\n <tr>\n <th>34</th>\n <td>0.4.3</td>\n <td>0</td>\n <td>4</td>\n <td>3</td>\n </tr>\n <tr>\n <th>2</th>\n <td>0.5.0</td>\n <td>0</td>\n <td>5</td>\n <td>0</td>\n </tr>\n <tr>\n <th>27</th>\n <td>0.6.0</td>\n <td>0</td>\n <td>6</td>\n <td>0</td>\n </tr>\n <tr>\n <th>7</th>\n <td>0.6.1</td>\n <td>0</td>\n <td>6</td>\n <td>1</td>\n </tr>\n <tr>\n <th>29</th>\n <td>0.7.0rc1</td>\n <td>0</td>\n <td>7</td>\n <td>0</td>\n </tr>\n <tr>\n <th>38</th>\n <td>0.7.0</td>\n <td>0</td>\n <td>7</td>\n <td>0</td>\n </tr>\n <tr>\n <th>37</th>\n <td>0.7.1</td>\n <td>0</td>\n <td>7</td>\n <td>1</td>\n </tr>\n <tr>\n <th>8</th>\n <td>0.7.2</td>\n <td>0</td>\n <td>7</td>\n <td>2</td>\n </tr>\n <tr>\n <th>10</th>\n <td>0.7.3</td>\n <td>0</td>\n <td>7</td>\n <td>3</td>\n </tr>\n <tr>\n <th>4</th>\n <td>0.8.0rc1</td>\n <td>0</td>\n <td>8</td>\n <td>0</td>\n </tr>\n <tr>\n <th>11</th>\n <td>0.8.0</td>\n <td>0</td>\n <td>8</td>\n <td>0</td>\n </tr>\n <tr>\n <th>14</th>\n <td>0.8.0rc2</td>\n <td>0</td>\n <td>8</td>\n <td>0</td>\n </tr>\n <tr>\n <th>33</th>\n <td>0.8.1</td>\n <td>0</td>\n <td>8</td>\n <td>1</td>\n </tr>\n <tr>\n <th>5</th>\n <td>0.9.0</td>\n <td>0</td>\n <td>9</td>\n <td>0</td>\n </tr>\n <tr>\n <th>22</th>\n <td>0.9.1</td>\n <td>0</td>\n <td>9</td>\n <td>1</td>\n </tr>\n <tr>\n <th>3</th>\n <td>0.10.0</td>\n <td>0</td>\n <td>10</td>\n <td>0</td>\n </tr>\n <tr>\n <th>25</th>\n <td>0.10.1</td>\n <td>0</td>\n <td>10</td>\n <td>1</td>\n </tr>\n <tr>\n <th>16</th>\n <td>0.11.0</td>\n <td>0</td>\n <td>11</td>\n <td>0</td>\n </tr>\n <tr>\n <th>13</th>\n <td>0.12.0</td>\n <td>0</td>\n <td>12</td>\n <td>0</td>\n </tr>\n <tr>\n <th>28</th>\n <td>0.13.0</td>\n <td>0</td>\n <td>13</td>\n <td>0</td>\n </tr>\n <tr>\n <th>36</th>\n <td>0.13.1</td>\n <td>0</td>\n <td>13</td>\n <td>1</td>\n </tr>\n <tr>\n <th>18</th>\n <td>0.14.0</td>\n <td>0</td>\n <td>14</td>\n <td>0</td>\n </tr>\n <tr>\n <th>17</th>\n <td>0.14.1</td>\n <td>0</td>\n <td>14</td>\n <td>1</td>\n </tr>\n <tr>\n <th>12</th>\n <td>0.15.0</td>\n <td>0</td>\n <td>15</td>\n <td>0</td>\n </tr>\n <tr>\n <th>15</th>\n <td>0.15.1</td>\n <td>0</td>\n <td>15</td>\n <td>1</td>\n </tr>\n <tr>\n <th>32</th>\n <td>0.15.2</td>\n <td>0</td>\n <td>15</td>\n <td>2</td>\n </tr>\n <tr>\n <th>0</th>\n <td>0.16.0</td>\n <td>0</td>\n <td>16</td>\n <td>0</td>\n </tr>\n <tr>\n <th>26</th>\n <td>0.16.1</td>\n <td>0</td>\n <td>16</td>\n <td>1</td>\n </tr>\n <tr>\n <th>19</th>\n <td>0.16.2</td>\n <td>0</td>\n <td>16</td>\n <td>2</td>\n </tr>\n </tbody>\n</table>\n</div>"
},
"metadata": {},
"execution_count": 66
}
]
},
{
"metadata": {
"trusted": true,
"collapsed": false,
"scrolled": true
},
"cell_type": "code",
"source": "df['number_of_releases'] = None\nfor index,sortedVersion in df.sort(['major','minor','patch']).iterrows():\n print(index,\n '{version} of {package} has {numRelease} release(s)'.format(\n version = sortedVersion['key'],\n package = package,\n numRelease = len(releases[sortedVersion['key']])\n )\n )\n df.loc[index,'number_of_releases' ] = len(releases[sortedVersion['key']])",
"execution_count": 80,
"outputs": [
{
"output_type": "stream",
"text": "1 0.1 of pandas has 2 release(s)\n6 0.2 of pandas has 1 release(s)\n20 0.2beta of pandas has 1 release(s)\n30 0.2b1 of pandas has 1 release(s)\n21 0.3.0 of pandas has 6 release(s)\n23 0.3.0.beta of pandas has 5 release(s)\n35 0.3.0.beta2 of pandas has 4 release(s)\n31 0.4.0 of pandas has 6 release(s)\n9 0.4.1 of pandas has 6 release(s)\n24 0.4.2 of pandas has 6 release(s)\n34 0.4.3 of pandas has 8 release(s)\n2 0.5.0 of pandas has 10 release(s)\n27 0.6.0 of pandas has 11 release(s)\n7 0.6.1 of pandas has 8 release(s)\n29 0.7.0rc1 of pandas has 9 release(s)\n38 0.7.0 of pandas has 11 release(s)\n37 0.7.1 of pandas has 11 release(s)\n8 0.7.2 of pandas has 11 release(s)\n10 0.7.3 of pandas has 11 release(s)\n4 0.8.0rc1 of pandas has 2 release(s)\n11 0.8.0 of pandas has 11 release(s)\n14 0.8.0rc2 of pandas has 11 release(s)\n33 0.8.1 of pandas has 11 release(s)\n5 0.9.0 of pandas has 11 release(s)\n22 0.9.1 of pandas has 11 release(s)\n3 0.10.0 of pandas has 12 release(s)\n25 0.10.1 of pandas has 10 release(s)\n16 0.11.0 of pandas has 10 release(s)\n13 0.12.0 of pandas has 10 release(s)\n28 0.13.0 of pandas has 9 release(s)\n36 0.13.1 of pandas has 10 release(s)\n18 0.14.0 of pandas has 15 release(s)\n17 0.14.1 of pandas has 16 release(s)\n12 0.15.0 of pandas has 16 release(s)\n15 0.15.1 of pandas has 16 release(s)\n32 0.15.2 of pandas has 26 release(s)\n0 0.16.0 of pandas has 14 release(s)\n26 0.16.1 of pandas has 14 release(s)\n19 0.16.2 of pandas has 14 release(s)\n",
"name": "stdout"
}
]
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "df.sort( ['major','minor','patch'])",
"execution_count": 84,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": " key major minor patch number_of_releases\n1 0.1 0 1 0 2\n6 0.2 0 2 0 1\n20 0.2beta 0 2 0 1\n30 0.2b1 0 2 0 1\n21 0.3.0 0 3 0 6\n23 0.3.0.beta 0 3 0 5\n35 0.3.0.beta2 0 3 0 4\n31 0.4.0 0 4 0 6\n9 0.4.1 0 4 1 6\n24 0.4.2 0 4 2 6\n34 0.4.3 0 4 3 8\n2 0.5.0 0 5 0 10\n27 0.6.0 0 6 0 11\n7 0.6.1 0 6 1 8\n29 0.7.0rc1 0 7 0 9\n38 0.7.0 0 7 0 11\n37 0.7.1 0 7 1 11\n8 0.7.2 0 7 2 11\n10 0.7.3 0 7 3 11\n4 0.8.0rc1 0 8 0 2\n11 0.8.0 0 8 0 11\n14 0.8.0rc2 0 8 0 11\n33 0.8.1 0 8 1 11\n5 0.9.0 0 9 0 11\n22 0.9.1 0 9 1 11\n3 0.10.0 0 10 0 12\n25 0.10.1 0 10 1 10\n16 0.11.0 0 11 0 10\n13 0.12.0 0 12 0 10\n28 0.13.0 0 13 0 9\n36 0.13.1 0 13 1 10\n18 0.14.0 0 14 0 15\n17 0.14.1 0 14 1 16\n12 0.15.0 0 15 0 16\n15 0.15.1 0 15 1 16\n32 0.15.2 0 15 2 26\n0 0.16.0 0 16 0 14\n26 0.16.1 0 16 1 14\n19 0.16.2 0 16 2 14",
"text/html": "<div>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>key</th>\n <th>major</th>\n <th>minor</th>\n <th>patch</th>\n <th>number_of_releases</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>1</th>\n <td>0.1</td>\n <td>0</td>\n <td>1</td>\n <td>0</td>\n <td>2</td>\n </tr>\n <tr>\n <th>6</th>\n <td>0.2</td>\n <td>0</td>\n <td>2</td>\n <td>0</td>\n <td>1</td>\n </tr>\n <tr>\n <th>20</th>\n <td>0.2beta</td>\n <td>0</td>\n <td>2</td>\n <td>0</td>\n <td>1</td>\n </tr>\n <tr>\n <th>30</th>\n <td>0.2b1</td>\n <td>0</td>\n <td>2</td>\n <td>0</td>\n <td>1</td>\n </tr>\n <tr>\n <th>21</th>\n <td>0.3.0</td>\n <td>0</td>\n <td>3</td>\n <td>0</td>\n <td>6</td>\n </tr>\n <tr>\n <th>23</th>\n <td>0.3.0.beta</td>\n <td>0</td>\n <td>3</td>\n <td>0</td>\n <td>5</td>\n </tr>\n <tr>\n <th>35</th>\n <td>0.3.0.beta2</td>\n <td>0</td>\n <td>3</td>\n <td>0</td>\n <td>4</td>\n </tr>\n <tr>\n <th>31</th>\n <td>0.4.0</td>\n <td>0</td>\n <td>4</td>\n <td>0</td>\n <td>6</td>\n </tr>\n <tr>\n <th>9</th>\n <td>0.4.1</td>\n <td>0</td>\n <td>4</td>\n <td>1</td>\n <td>6</td>\n </tr>\n <tr>\n <th>24</th>\n <td>0.4.2</td>\n <td>0</td>\n <td>4</td>\n <td>2</td>\n <td>6</td>\n </tr>\n <tr>\n <th>34</th>\n <td>0.4.3</td>\n <td>0</td>\n <td>4</td>\n <td>3</td>\n <td>8</td>\n </tr>\n <tr>\n <th>2</th>\n <td>0.5.0</td>\n <td>0</td>\n <td>5</td>\n <td>0</td>\n <td>10</td>\n </tr>\n <tr>\n <th>27</th>\n <td>0.6.0</td>\n <td>0</td>\n <td>6</td>\n <td>0</td>\n <td>11</td>\n </tr>\n <tr>\n <th>7</th>\n <td>0.6.1</td>\n <td>0</td>\n <td>6</td>\n <td>1</td>\n <td>8</td>\n </tr>\n <tr>\n <th>29</th>\n <td>0.7.0rc1</td>\n <td>0</td>\n <td>7</td>\n <td>0</td>\n <td>9</td>\n </tr>\n <tr>\n <th>38</th>\n <td>0.7.0</td>\n <td>0</td>\n <td>7</td>\n <td>0</td>\n <td>11</td>\n </tr>\n <tr>\n <th>37</th>\n <td>0.7.1</td>\n <td>0</td>\n <td>7</td>\n <td>1</td>\n <td>11</td>\n </tr>\n <tr>\n <th>8</th>\n <td>0.7.2</td>\n <td>0</td>\n <td>7</td>\n <td>2</td>\n <td>11</td>\n </tr>\n <tr>\n <th>10</th>\n <td>0.7.3</td>\n <td>0</td>\n <td>7</td>\n <td>3</td>\n <td>11</td>\n </tr>\n <tr>\n <th>4</th>\n <td>0.8.0rc1</td>\n <td>0</td>\n <td>8</td>\n <td>0</td>\n <td>2</td>\n </tr>\n <tr>\n <th>11</th>\n <td>0.8.0</td>\n <td>0</td>\n <td>8</td>\n <td>0</td>\n <td>11</td>\n </tr>\n <tr>\n <th>14</th>\n <td>0.8.0rc2</td>\n <td>0</td>\n <td>8</td>\n <td>0</td>\n <td>11</td>\n </tr>\n <tr>\n <th>33</th>\n <td>0.8.1</td>\n <td>0</td>\n <td>8</td>\n <td>1</td>\n <td>11</td>\n </tr>\n <tr>\n <th>5</th>\n <td>0.9.0</td>\n <td>0</td>\n <td>9</td>\n <td>0</td>\n <td>11</td>\n </tr>\n <tr>\n <th>22</th>\n <td>0.9.1</td>\n <td>0</td>\n <td>9</td>\n <td>1</td>\n <td>11</td>\n </tr>\n <tr>\n <th>3</th>\n <td>0.10.0</td>\n <td>0</td>\n <td>10</td>\n <td>0</td>\n <td>12</td>\n </tr>\n <tr>\n <th>25</th>\n <td>0.10.1</td>\n <td>0</td>\n <td>10</td>\n <td>1</td>\n <td>10</td>\n </tr>\n <tr>\n <th>16</th>\n <td>0.11.0</td>\n <td>0</td>\n <td>11</td>\n <td>0</td>\n <td>10</td>\n </tr>\n <tr>\n <th>13</th>\n <td>0.12.0</td>\n <td>0</td>\n <td>12</td>\n <td>0</td>\n <td>10</td>\n </tr>\n <tr>\n <th>28</th>\n <td>0.13.0</td>\n <td>0</td>\n <td>13</td>\n <td>0</td>\n <td>9</td>\n </tr>\n <tr>\n <th>36</th>\n <td>0.13.1</td>\n <td>0</td>\n <td>13</td>\n <td>1</td>\n <td>10</td>\n </tr>\n <tr>\n <th>18</th>\n <td>0.14.0</td>\n <td>0</td>\n <td>14</td>\n <td>0</td>\n <td>15</td>\n </tr>\n <tr>\n <th>17</th>\n <td>0.14.1</td>\n <td>0</td>\n <td>14</td>\n <td>1</td>\n <td>16</td>\n </tr>\n <tr>\n <th>12</th>\n <td>0.15.0</td>\n <td>0</td>\n <td>15</td>\n <td>0</td>\n <td>16</td>\n </tr>\n <tr>\n <th>15</th>\n <td>0.15.1</td>\n <td>0</td>\n <td>15</td>\n <td>1</td>\n <td>16</td>\n </tr>\n <tr>\n <th>32</th>\n <td>0.15.2</td>\n <td>0</td>\n <td>15</td>\n <td>2</td>\n <td>26</td>\n </tr>\n <tr>\n <th>0</th>\n <td>0.16.0</td>\n <td>0</td>\n <td>16</td>\n <td>0</td>\n <td>14</td>\n </tr>\n <tr>\n <th>26</th>\n <td>0.16.1</td>\n <td>0</td>\n <td>16</td>\n <td>1</td>\n <td>14</td>\n </tr>\n <tr>\n <th>19</th>\n <td>0.16.2</td>\n <td>0</td>\n <td>16</td>\n <td>2</td>\n <td>14</td>\n </tr>\n </tbody>\n</table>\n</div>"
},
"metadata": {},
"execution_count": 84
}
]
},
{
"metadata": {
"trusted": true,
"collapsed": true
},
"cell_type": "code",
"source": "",
"execution_count": null,
"outputs": []
}
],
"metadata": {
"kernelspec": {
"name": "python3",
"display_name": "Python 3",
"language": "python"
},
"language_info": {
"name": "python",
"nbconvert_exporter": "python",
"version": "3.4.3",
"pygments_lexer": "ipython3",
"file_extension": ".py",
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"mimetype": "text/x-python"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment