Last active
October 31, 2017 16:15
-
-
Save drcjar/f9c0e8bf06872e5e9132c585a49f6088 to your computer and use it in GitHub Desktop.
ipfjes-analysis-centre-stats
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": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import pandas as pd\n", "import psycopg2 as pg\n", "import pandas.io.sql as psql\n", "import datetime\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# todo automate all inc db prep bit and https://stackoverflow.com/questions/33181846/programmatically-convert-pandas-dataframe-to-markdown-table" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [], "source": [ "conn = pg.connect(\"dbname='carlplaying' user='drcjar' password='drcjar_is_not_fake'\")" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [], "source": [ "df = psql.read_sql(\"SELECT * FROM ipfjes_demographics\", conn)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [], "source": [ "t = df.updated.max() # date of most recent record in db" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [], "source": [ "lookup = pd.read_csv('https://raw.githubusercontent.com/drcjar/ipfjes/master/docs/ipfjes-centre-ids.csv')\n", "centre_stats = df[~df.hospital_number.str.upper().str.contains('TEST')].hospital_number.str[:2].value_counts().reset_index()\n", "centre_stats.columns = ['Centre ID', 'Participants Recruited']\n", "centre_stats['Centre ID'] = centre_stats['Centre ID'].astype(int)\n", "centre_stats = pd.merge(centre_stats, lookup, on='Centre ID')\n", "centre_stats = centre_stats[['Principle Investigator', 'Organisation', 'Participants Recruited']]" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "centre stats as of 30-10-17\n", "105 enrolled in 152 days (5/week) \n", "815 in 578 days to go (10/week)\n" ] }, { "data": { "text/html": [ "<div>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>Principle Investigator</th>\n", " <th>Organisation</th>\n", " <th>Participants Recruited</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>0</th>\n", " <td>Lisa Spencer</td>\n", " <td>Aintree University Hospitals NHS Foundation Trust</td>\n", " <td>33</td>\n", " </tr>\n", " <tr>\n", " <th>1</th>\n", " <td>Gareth Walters</td>\n", " <td>Heart of England NHS Foundation Trust</td>\n", " <td>17</td>\n", " </tr>\n", " <tr>\n", " <th>2</th>\n", " <td>Nazia Chaudhuri</td>\n", " <td>University Hospital of South Manchester</td>\n", " <td>16</td>\n", " </tr>\n", " <tr>\n", " <th>3</th>\n", " <td>Kim Harrison</td>\n", " <td>Morriston Hospital</td>\n", " <td>8</td>\n", " </tr>\n", " <tr>\n", " <th>4</th>\n", " <td>Huzaifa Adamali</td>\n", " <td>North Bristol NHS Trust</td>\n", " <td>8</td>\n", " </tr>\n", " <tr>\n", " <th>5</th>\n", " <td>Michael Gibbons</td>\n", " <td>Royal Devon and Exeter NHS Foundation Trust</td>\n", " <td>5</td>\n", " </tr>\n", " <tr>\n", " <th>6</th>\n", " <td>Gauri Saini</td>\n", " <td>Nottingham University Hospitals NHS Trust</td>\n", " <td>5</td>\n", " </tr>\n", " <tr>\n", " <th>7</th>\n", " <td>Carl Reynolds</td>\n", " <td>Imperial College Healthcare NHS Trust</td>\n", " <td>5</td>\n", " </tr>\n", " <tr>\n", " <th>8</th>\n", " <td>Owen Dempsey</td>\n", " <td>Aberdeen Royal Infirmary</td>\n", " <td>3</td>\n", " </tr>\n", " <tr>\n", " <th>9</th>\n", " <td>Nik Hirani</td>\n", " <td>Royal Infirmary of Edinburgh</td>\n", " <td>3</td>\n", " </tr>\n", " <tr>\n", " <th>10</th>\n", " <td>Sophie Fletcher</td>\n", " <td>Southampton University Hospitals NHS Trust</td>\n", " <td>2</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " Principle Investigator Organisation \\\n", "0 Lisa Spencer Aintree University Hospitals NHS Foundation Trust \n", "1 Gareth Walters Heart of England NHS Foundation Trust \n", "2 Nazia Chaudhuri University Hospital of South Manchester \n", "3 Kim Harrison Morriston Hospital \n", "4 Huzaifa Adamali North Bristol NHS Trust \n", "5 Michael Gibbons Royal Devon and Exeter NHS Foundation Trust \n", "6 Gauri Saini Nottingham University Hospitals NHS Trust \n", "7 Carl Reynolds Imperial College Healthcare NHS Trust \n", "8 Owen Dempsey Aberdeen Royal Infirmary \n", "9 Nik Hirani Royal Infirmary of Edinburgh \n", "10 Sophie Fletcher Southampton University Hospitals NHS Trust \n", "\n", " Participants Recruited \n", "0 33 \n", "1 17 \n", "2 16 \n", "3 8 \n", "4 8 \n", "5 5 \n", "6 5 \n", "7 5 \n", "8 3 \n", "9 3 \n", "10 2 " ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "start_date = datetime.date(2017, 6, 1)\n", "end_date = datetime.date(2019, 6, 1)\n", "elapsed = (datetime.date.today() - start_date).days\n", "remaining = (end_date - datetime.date.today()).days\n", "\n", "print('centre stats as of {}'.format(t.strftime('%d-%m-%y')))\n", "recruited = centre_stats['Participants Recruited'].sum()\n", "print('{} enrolled in {} days ({:.0f}/week) \\n{} in {} days to go ({:.0f}/week)'.format(recruited, elapsed, (recruited/elapsed*7),\n", " (920 - recruited), remaining, (920 - recruited)/remaining*7))\n", "centre_stats" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [], "source": [ "centre_stats.to_csv('ipfjes-recruitment-{}.csv'.format(t.strftime('%d-%m-%y')), index=False)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [], "source": [ "df.updated = pd.to_datetime(df.updated, utc=True)" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [], "source": [ "df.index = df.updated" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "<matplotlib.axes._subplots.AxesSubplot at 0x7fb26bfdb390>" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nJEkN+P8BqsByqU1ovX4AAAAASUVORK5CYII=\n", "text/plain": [ "<matplotlib.figure.Figure at 0x7fb24cedd550>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "df.resample('M').hospital_number.count().plot(kind='bar')" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.5.2" } }, "nbformat": 4, "nbformat_minor": 2} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment