Forked from tonyfast/ordering_json_keys_with_pandas.ipynb
Last active
August 29, 2015 14:27
-
-
Save ICBacon/7987c5c066bc8a14e384 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "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