Skip to content

Instantly share code, notes, and snippets.

@fperez
Created January 12, 2015 02:17
Show Gist options
  • Save fperez/87d1193cfb4ff3bfd17b to your computer and use it in GitHub Desktop.
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
Display the source blob
Display the rendered blob
Raw
{
"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> fperez@lbl.gov</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> fperez@lbl.gov</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> fperez@lbl.gov</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> fperez@lbl.gov</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> jdoe@gmail.com</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 fperez@lbl.gov \n",
"1 1/9/2015 19:22:30 fperez/Fernando Perez fperez@lbl.gov \n",
"2 1/9/2015 19:23:40 fperez/Fernando Perez fperez@lbl.gov \n",
"3 1/9/2015 19:24:16 fperez/Fernando Perez fperez@lbl.gov \n",
"4 1/9/2015 19:26:42 jdoe/Jane Doe jdoe@gmail.com \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> fperez@lbl.gov</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> fperez@lbl.gov</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> fperez@lbl.gov</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> fperez@lbl.gov</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> jdoe@gmail.com</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 fperez@lbl.gov Mac OSX Chrome \n",
"1 1/9/2015 19:22:30 fperez@lbl.gov Windows Firefox \n",
"2 1/9/2015 19:23:40 fperez@lbl.gov Linux Chrome \n",
"3 1/9/2015 19:24:16 fperez@lbl.gov Linux Chrome \n",
"4 1/9/2015 19:26:42 jdoe@gmail.com 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> fperez@lbl.gov</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 fperez@lbl.gov 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