Created
January 12, 2015 02:17
-
-
Save fperez/87d1193cfb4ff3bfd17b to your computer and use it in GitHub Desktop.
Testing Dashboard to pull data from a Google form into Pandas and do simple analytics of human-driven tests
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": [ | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"'0.14.1'" | |
] | |
}, | |
"execution_count": 4, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"from __future__ import print_function\n", | |
"\n", | |
"# Configure plotting\n", | |
"%matplotlib inline\n", | |
"\n", | |
"# Stdlib imports\n", | |
"import sys\n", | |
"\n", | |
"# Third-party\n", | |
"\n", | |
"# Scipy stack tools\n", | |
"from IPython.display import display, HTML\n", | |
"import matplotlib.pyplot as plt\n", | |
"import numpy as np\n", | |
"import pandas as pd\n", | |
"pd.__version__" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 8, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"tpl = 'https://docs.google.com/spreadsheet/ccc?key=%s&output=csv'\n", | |
"key = '1Wa9fzCOjhnUSKQzyjxizJm9bVdQKbocTlVMmu6g0LMY'\n", | |
"url = tpl % key" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 9, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/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>Timestamp</th>\n", | |
" <th>KBase user/First Last Name</th>\n", | |
" <th>Email</th>\n", | |
" <th>Operating System</th>\n", | |
" <th>Browser</th>\n", | |
" <th>Version of KBase Narrative</th>\n", | |
" <th>test_assem_annot_m_genome</th>\n", | |
" <th>test_assem_annot_m_genome_info</th>\n", | |
" <th>test_reannot_m_genome</th>\n", | |
" <th>test_reannot_m_genome_info</th>\n", | |
" <th>test_recon_metab_model</th>\n", | |
" <th>test_recon_metab_model_info</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td> 1/9/2015 19:22:01</td>\n", | |
" <td> fperez/Fernando Perez</td>\n", | |
" <td> [email protected]</td>\n", | |
" <td> Mac OSX</td>\n", | |
" <td> Chrome</td>\n", | |
" <td> v0.3.5</td>\n", | |
" <td> Pass</td>\n", | |
" <td> NaN</td>\n", | |
" <td> Fail</td>\n", | |
" <td> Bad things happened.</td>\n", | |
" <td> NaN</td>\n", | |
" <td> NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td> 1/9/2015 19:22:30</td>\n", | |
" <td> fperez/Fernando Perez</td>\n", | |
" <td> [email protected]</td>\n", | |
" <td> Windows</td>\n", | |
" <td> Firefox</td>\n", | |
" <td> v0.3.5</td>\n", | |
" <td> Fail</td>\n", | |
" <td> Bad!</td>\n", | |
" <td> Pass</td>\n", | |
" <td> NaN</td>\n", | |
" <td> Pass</td>\n", | |
" <td> NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td> 1/9/2015 19:23:40</td>\n", | |
" <td> fperez/Fernando Perez</td>\n", | |
" <td> [email protected]</td>\n", | |
" <td> Linux</td>\n", | |
" <td> Chrome</td>\n", | |
" <td> v0.3.5</td>\n", | |
" <td> Fail</td>\n", | |
" <td> Browser Crash.</td>\n", | |
" <td> Fail</td>\n", | |
" <td> Browser Crash.</td>\n", | |
" <td> Fail</td>\n", | |
" <td> Browser Crash.</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td> 1/9/2015 19:24:16</td>\n", | |
" <td> fperez/Fernando Perez</td>\n", | |
" <td> [email protected]</td>\n", | |
" <td> Linux</td>\n", | |
" <td> Chrome</td>\n", | |
" <td> v0.3.5</td>\n", | |
" <td> Fail</td>\n", | |
" <td> Browser Crash.</td>\n", | |
" <td> Fail</td>\n", | |
" <td> Browser Crash.</td>\n", | |
" <td> Fail</td>\n", | |
" <td> Browser Crash.</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td> 1/9/2015 19:26:42</td>\n", | |
" <td> jdoe/Jane Doe</td>\n", | |
" <td> [email protected]</td>\n", | |
" <td> Linux</td>\n", | |
" <td> Firefox</td>\n", | |
" <td> v0.3.5</td>\n", | |
" <td> Pass</td>\n", | |
" <td> NaN</td>\n", | |
" <td> Pass</td>\n", | |
" <td> NaN</td>\n", | |
" <td> Pass</td>\n", | |
" <td> NaN</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" Timestamp KBase user/First Last Name Email \\\n", | |
"0 1/9/2015 19:22:01 fperez/Fernando Perez [email protected] \n", | |
"1 1/9/2015 19:22:30 fperez/Fernando Perez [email protected] \n", | |
"2 1/9/2015 19:23:40 fperez/Fernando Perez [email protected] \n", | |
"3 1/9/2015 19:24:16 fperez/Fernando Perez [email protected] \n", | |
"4 1/9/2015 19:26:42 jdoe/Jane Doe [email protected] \n", | |
"\n", | |
" Operating System Browser Version of KBase Narrative \\\n", | |
"0 Mac OSX Chrome v0.3.5 \n", | |
"1 Windows Firefox v0.3.5 \n", | |
"2 Linux Chrome v0.3.5 \n", | |
"3 Linux Chrome v0.3.5 \n", | |
"4 Linux Firefox v0.3.5 \n", | |
"\n", | |
" test_assem_annot_m_genome test_assem_annot_m_genome_info \\\n", | |
"0 Pass NaN \n", | |
"1 Fail Bad! \n", | |
"2 Fail Browser Crash. \n", | |
"3 Fail Browser Crash. \n", | |
"4 Pass NaN \n", | |
"\n", | |
" test_reannot_m_genome test_reannot_m_genome_info test_recon_metab_model \\\n", | |
"0 Fail Bad things happened. NaN \n", | |
"1 Pass NaN Pass \n", | |
"2 Fail Browser Crash. Fail \n", | |
"3 Fail Browser Crash. Fail \n", | |
"4 Pass NaN Pass \n", | |
"\n", | |
" test_recon_metab_model_info \n", | |
"0 NaN \n", | |
"1 NaN \n", | |
"2 Browser Crash. \n", | |
"3 Browser Crash. \n", | |
"4 NaN " | |
] | |
}, | |
"execution_count": 9, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df = pd.read_csv(url)\n", | |
"df" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 10, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"main_fields = ['Timestamp', 'Email', 'Operating System', 'Browser', 'Version of KBase Narrative']\n", | |
"test_names = [n for n in df.columns if n.startswith('test') and not n.endswith('info')]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 11, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"0 Pass\n", | |
"1 Fail\n", | |
"2 Fail\n", | |
"3 Fail\n", | |
"4 Pass\n", | |
"Name: test_assem_annot_m_genome, dtype: object" | |
] | |
}, | |
"execution_count": 11, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df[test_names[0]]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 12, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/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>Timestamp</th>\n", | |
" <th>Email</th>\n", | |
" <th>Operating System</th>\n", | |
" <th>Browser</th>\n", | |
" <th>Version of KBase Narrative</th>\n", | |
" <th>test_assem_annot_m_genome</th>\n", | |
" <th>test_reannot_m_genome</th>\n", | |
" <th>test_recon_metab_model</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td> 1/9/2015 19:22:01</td>\n", | |
" <td> [email protected]</td>\n", | |
" <td> Mac OSX</td>\n", | |
" <td> Chrome</td>\n", | |
" <td> v0.3.5</td>\n", | |
" <td> Pass</td>\n", | |
" <td> Fail</td>\n", | |
" <td> NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td> 1/9/2015 19:22:30</td>\n", | |
" <td> [email protected]</td>\n", | |
" <td> Windows</td>\n", | |
" <td> Firefox</td>\n", | |
" <td> v0.3.5</td>\n", | |
" <td> Fail</td>\n", | |
" <td> Pass</td>\n", | |
" <td> Pass</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td> 1/9/2015 19:23:40</td>\n", | |
" <td> [email protected]</td>\n", | |
" <td> Linux</td>\n", | |
" <td> Chrome</td>\n", | |
" <td> v0.3.5</td>\n", | |
" <td> Fail</td>\n", | |
" <td> Fail</td>\n", | |
" <td> Fail</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td> 1/9/2015 19:24:16</td>\n", | |
" <td> [email protected]</td>\n", | |
" <td> Linux</td>\n", | |
" <td> Chrome</td>\n", | |
" <td> v0.3.5</td>\n", | |
" <td> Fail</td>\n", | |
" <td> Fail</td>\n", | |
" <td> Fail</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td> 1/9/2015 19:26:42</td>\n", | |
" <td> [email protected]</td>\n", | |
" <td> Linux</td>\n", | |
" <td> Firefox</td>\n", | |
" <td> v0.3.5</td>\n", | |
" <td> Pass</td>\n", | |
" <td> Pass</td>\n", | |
" <td> Pass</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" Timestamp Email Operating System Browser \\\n", | |
"0 1/9/2015 19:22:01 [email protected] Mac OSX Chrome \n", | |
"1 1/9/2015 19:22:30 [email protected] Windows Firefox \n", | |
"2 1/9/2015 19:23:40 [email protected] Linux Chrome \n", | |
"3 1/9/2015 19:24:16 [email protected] Linux Chrome \n", | |
"4 1/9/2015 19:26:42 [email protected] Linux Firefox \n", | |
"\n", | |
" Version of KBase Narrative test_assem_annot_m_genome test_reannot_m_genome \\\n", | |
"0 v0.3.5 Pass Fail \n", | |
"1 v0.3.5 Fail Pass \n", | |
"2 v0.3.5 Fail Fail \n", | |
"3 v0.3.5 Fail Fail \n", | |
"4 v0.3.5 Pass Pass \n", | |
"\n", | |
" test_recon_metab_model \n", | |
"0 NaN \n", | |
"1 Pass \n", | |
"2 Fail \n", | |
"3 Fail \n", | |
"4 Pass " | |
] | |
}, | |
"execution_count": 12, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"tests = df[main_fields + test_names]\n", | |
"tests" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 13, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/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>Timestamp</th>\n", | |
" <th>Email</th>\n", | |
" <th>Operating System</th>\n", | |
" <th>Browser</th>\n", | |
" <th>Version of KBase Narrative</th>\n", | |
" <th>test_assem_annot_m_genome</th>\n", | |
" <th>test_reannot_m_genome</th>\n", | |
" <th>test_recon_metab_model</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>count</th>\n", | |
" <td> 5</td>\n", | |
" <td> 5</td>\n", | |
" <td> 5</td>\n", | |
" <td> 5</td>\n", | |
" <td> 5</td>\n", | |
" <td> 5</td>\n", | |
" <td> 5</td>\n", | |
" <td> 4</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>unique</th>\n", | |
" <td> 5</td>\n", | |
" <td> 2</td>\n", | |
" <td> 3</td>\n", | |
" <td> 2</td>\n", | |
" <td> 1</td>\n", | |
" <td> 2</td>\n", | |
" <td> 2</td>\n", | |
" <td> 2</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>top</th>\n", | |
" <td> 1/9/2015 19:22:01</td>\n", | |
" <td> [email protected]</td>\n", | |
" <td> Linux</td>\n", | |
" <td> Chrome</td>\n", | |
" <td> v0.3.5</td>\n", | |
" <td> Fail</td>\n", | |
" <td> Fail</td>\n", | |
" <td> Pass</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>freq</th>\n", | |
" <td> 1</td>\n", | |
" <td> 4</td>\n", | |
" <td> 3</td>\n", | |
" <td> 3</td>\n", | |
" <td> 5</td>\n", | |
" <td> 3</td>\n", | |
" <td> 3</td>\n", | |
" <td> 2</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" Timestamp Email Operating System Browser \\\n", | |
"count 5 5 5 5 \n", | |
"unique 5 2 3 2 \n", | |
"top 1/9/2015 19:22:01 [email protected] Linux Chrome \n", | |
"freq 1 4 3 3 \n", | |
"\n", | |
" Version of KBase Narrative test_assem_annot_m_genome \\\n", | |
"count 5 5 \n", | |
"unique 1 2 \n", | |
"top v0.3.5 Fail \n", | |
"freq 5 3 \n", | |
"\n", | |
" test_reannot_m_genome test_recon_metab_model \n", | |
"count 5 4 \n", | |
"unique 2 2 \n", | |
"top Fail Pass \n", | |
"freq 3 2 " | |
] | |
}, | |
"execution_count": 13, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"tests.describe()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python 2", | |
"name": "python2" | |
}, | |
"language_info": { | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 2 | |
}, | |
"file_extension": ".py", | |
"mimetype": "text/x-python", | |
"name": "python", | |
"nbconvert_exporter": "python", | |
"pygments_lexer": "ipython2", | |
"version": "2.7.8" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 0 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment