{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Capstone: Summarizing Clinical and Demographic Data" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", "from pandas import DataFrame, Series" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "pd.set_option('precision',2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Load data sets from Excel" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [], "source": [ "df_subject = pd.read_excel('data/capstone1/HIV Boot Camp.xls', sheetname='Patient Information')\n", "df_hiv = pd.read_excel('data/capstone1/HIV Boot Camp.xls', sheetname='HIV RNA')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Queries on Patient Information table" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(3748, 10)" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_subject.shape" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
IDAGERACESEXMSMIDUUNC Entry to Care YearPrior HIV Care ElsewhereOn ARTART Type
0138AMINDFNoNo2012NOYesIntegrase
1244AMINDFNoNo2006YESNoNaN
2333AMINDFNoNo2005NONoNaN
3460AMINDFNoYes2003NOYesIntegrase
4647AMINDFNoNo2001YESYesOther
5754AMINDFNoNo2000YESYesOther
6846AMINDFNoNo2000NONoNaN
7969AMINDFNoNo1999NONoNaN
81041AMINDFNoNo1999NONoNaN
91138AMINDFNoNo1999NONoNaN
\n", "
" ], "text/plain": [ " ID AGE RACE SEX MSM IDU UNC Entry to Care Year \\\n", "0 1 38 AMIND F No No 2012 \n", "1 2 44 AMIND F No No 2006 \n", "2 3 33 AMIND F No No 2005 \n", "3 4 60 AMIND F No Yes 2003 \n", "4 6 47 AMIND F No No 2001 \n", "5 7 54 AMIND F No No 2000 \n", "6 8 46 AMIND F No No 2000 \n", "7 9 69 AMIND F No No 1999 \n", "8 10 41 AMIND F No No 1999 \n", "9 11 38 AMIND F No No 1999 \n", "\n", " Prior HIV Care Elsewhere On ART ART Type \n", "0 NO Yes Integrase \n", "1 YES No NaN \n", "2 NO No NaN \n", "3 NO Yes Integrase \n", "4 YES Yes Other \n", "5 YES Yes Other \n", "6 NO No NaN \n", "7 NO No NaN \n", "8 NO No NaN \n", "9 NO No NaN " ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_subject.head(n=10)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
IDAGERACESEXMSMIDUUNC Entry to Care YearPrior HIV Care ElsewhereOn ARTART Type
3743425344WHITEMNoNo1990YESNoNaN
3744425456WHITEMYesYes1990YESNoNaN
3745425558WHITEMYesNo1990YESYesOther
3746425760WHITEMYesNo1989YESYesOther
3747425957WHITEMYesNo1985NOYesOther
\n", "
" ], "text/plain": [ " ID AGE RACE SEX MSM IDU UNC Entry to Care Year \\\n", "3743 4253 44 WHITE M No No 1990 \n", "3744 4254 56 WHITE M Yes Yes 1990 \n", "3745 4255 58 WHITE M Yes No 1990 \n", "3746 4257 60 WHITE M Yes No 1989 \n", "3747 4259 57 WHITE M Yes No 1985 \n", "\n", " Prior HIV Care Elsewhere On ART ART Type \n", "3743 YES No NaN \n", "3744 YES No NaN \n", "3745 YES Yes Other \n", "3746 YES Yes Other \n", "3747 NO Yes Other " ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_subject.tail(n=5)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
IDAGERACESEXMSMIDUUNC Entry to Care YearPrior HIV Care ElsewhereOn ARTART Type
59566252BLACKFNoUnknown1998NOYesIntegrase
1509166559BLACKMYesNo2009NOYesNNRTI
3010343662WHITEMYesUnknown2009NOYesIntegrase
1143129132BLACKMYesNo2015NOYesIntegrase
1190133852BLACKMNoNo2014NOYesIntegrase
3657416164WHITEMYesUnknown1994NONoNaN
1772195775BLACKMNoNo2004NONoNaN
3311375271WHITEMYesNo2001YESYesPI
\n", "
" ], "text/plain": [ " ID AGE RACE SEX MSM IDU UNC Entry to Care Year \\\n", "595 662 52 BLACK F No Unknown 1998 \n", "1509 1665 59 BLACK M Yes No 2009 \n", "3010 3436 62 WHITE M Yes Unknown 2009 \n", "1143 1291 32 BLACK M Yes No 2015 \n", "1190 1338 52 BLACK M No No 2014 \n", "3657 4161 64 WHITE M Yes Unknown 1994 \n", "1772 1957 75 BLACK M No No 2004 \n", "3311 3752 71 WHITE M Yes No 2001 \n", "\n", " Prior HIV Care Elsewhere On ART ART Type \n", "595 NO Yes Integrase \n", "1509 NO Yes NNRTI \n", "3010 NO Yes Integrase \n", "1143 NO Yes Integrase \n", "1190 NO Yes Integrase \n", "3657 NO No NaN \n", "1772 NO No NaN \n", "3311 YES Yes PI " ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_subject.sample(n=8)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Filtering on age" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
IDAGERACESEXMSMIDUUNC Entry to Care YearPrior HIV Care ElsewhereOn ARTART Type
20221889BLACKFNoNo2007YESNoNaN
70380089BLACKFNoNo1995NOYesOther
73684088BLACKFNoNo1994YESNoNaN
75586985BLACKFNoNo1993YESNoNaN
917104286WHITEFNoNo2007YESNoNaN
1983219185BLACKMNoNo2001NONoNaN
2297256987BLACKMNoNo1998YESNoNaN
3321376288WHITEMYesNo2001YESNoNaN
3606410285WHITEMUnknownUnknown1996YESNoNaN
3645414986WHITEMNoNo1995YESYesOther
\n", "
" ], "text/plain": [ " ID AGE RACE SEX MSM IDU UNC Entry to Care Year \\\n", "202 218 89 BLACK F No No 2007 \n", "703 800 89 BLACK F No No 1995 \n", "736 840 88 BLACK F No No 1994 \n", "755 869 85 BLACK F No No 1993 \n", "917 1042 86 WHITE F No No 2007 \n", "1983 2191 85 BLACK M No No 2001 \n", "2297 2569 87 BLACK M No No 1998 \n", "3321 3762 88 WHITE M Yes No 2001 \n", "3606 4102 85 WHITE M Unknown Unknown 1996 \n", "3645 4149 86 WHITE M No No 1995 \n", "\n", " Prior HIV Care Elsewhere On ART ART Type \n", "202 YES No NaN \n", "703 NO Yes Other \n", "736 YES No NaN \n", "755 YES No NaN \n", "917 YES No NaN \n", "1983 NO No NaN \n", "2297 YES No NaN \n", "3321 YES No NaN \n", "3606 YES No NaN \n", "3645 YES Yes Other " ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_subject[df_subject.AGE >= 85]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Split-Apply-Combine" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
ID
RACEOn ART
AMINDNo39
Yes24
ASIANNo3
Yes5
BLACKNo1164
Yes1037
HISPNNo33
Yes6
OTHERNo94
Yes118
UNKNWNo5
Yes16
WHITENo601
Yes603
\n", "
" ], "text/plain": [ " ID\n", "RACE On ART \n", "AMIND No 39\n", " Yes 24\n", "ASIAN No 3\n", " Yes 5\n", "BLACK No 1164\n", " Yes 1037\n", "HISPN No 33\n", " Yes 6\n", "OTHER No 94\n", " Yes 118\n", "UNKNW No 5\n", " Yes 16\n", "WHITE No 601\n", " Yes 603" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "grouped = df_subject.groupby(['RACE', 'On ART'])\n", "df1 = grouped[['ID']].count()\n", "df1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Working with hierarchical indexes" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
ID
On ARTNoYes
RACE
AMIND3924
ASIAN35
BLACK11641037
HISPN336
OTHER94118
UNKNW516
WHITE601603
\n", "
" ], "text/plain": [ " ID \n", "On ART No Yes\n", "RACE \n", "AMIND 39 24\n", "ASIAN 3 5\n", "BLACK 1164 1037\n", "HISPN 33 6\n", "OTHER 94 118\n", "UNKNW 5 16\n", "WHITE 601 603" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df1.unstack(level = 1)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
ID
RACEAMINDASIANBLACKHISPNOTHERUNKNWWHITE
On ART
No393116433945601
Yes2451037611816603
\n", "
" ], "text/plain": [ " ID \n", "RACE AMIND ASIAN BLACK HISPN OTHER UNKNW WHITE\n", "On ART \n", "No 39 3 1164 33 94 5 601\n", "Yes 24 5 1037 6 118 16 603" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df1.unstack(level=0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Perhaps surprising" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
ID
SEXMSM
FNo1071
Unknown15
Yes3
MNo609
Unknown467
Yes1583
\n", "
" ], "text/plain": [ " ID\n", "SEX MSM \n", "F No 1071\n", " Unknown 15\n", " Yes 3\n", "M No 609\n", " Unknown 467\n", " Yes 1583" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_subject.groupby(['SEX', 'MSM'])[['ID']].count()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Multiple summaries of single variable" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
AGE
countmeanstd
RACESEX
AMINDF1945.268.25
M4450.349.41
ASIANF234.007.07
M643.5016.87
BLACKF77051.2211.16
M143149.1312.78
HISPNF1146.097.67
M2849.0410.26
OTHERF5146.5711.47
M16146.2011.21
UNKNWF546.4012.90
M1644.1910.60
WHITEF23150.6610.55
M97351.2411.06
\n", "
" ], "text/plain": [ " AGE \n", " count mean std\n", "RACE SEX \n", "AMIND F 19 45.26 8.25\n", " M 44 50.34 9.41\n", "ASIAN F 2 34.00 7.07\n", " M 6 43.50 16.87\n", "BLACK F 770 51.22 11.16\n", " M 1431 49.13 12.78\n", "HISPN F 11 46.09 7.67\n", " M 28 49.04 10.26\n", "OTHER F 51 46.57 11.47\n", " M 161 46.20 11.21\n", "UNKNW F 5 46.40 12.90\n", " M 16 44.19 10.60\n", "WHITE F 231 50.66 10.55\n", " M 973 51.24 11.06" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "grouped = df_subject.groupby(['RACE', 'SEX'])\n", "df2 = grouped[['AGE']].agg(['count', 'mean', 'std'])\n", "df2" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
AGE
countmeanstd
SEXFMFMFM
RACE
AMIND194445.2650.348.259.41
ASIAN2634.0043.507.0716.87
BLACK770143151.2249.1311.1612.78
HISPN112846.0949.047.6710.26
OTHER5116146.5746.2011.4711.21
UNKNW51646.4044.1912.9010.60
WHITE23197350.6651.2410.5511.06
\n", "
" ], "text/plain": [ " AGE \n", " count mean std \n", "SEX F M F M F M\n", "RACE \n", "AMIND 19 44 45.26 50.34 8.25 9.41\n", "ASIAN 2 6 34.00 43.50 7.07 16.87\n", "BLACK 770 1431 51.22 49.13 11.16 12.78\n", "HISPN 11 28 46.09 49.04 7.67 10.26\n", "OTHER 51 161 46.57 46.20 11.47 11.21\n", "UNKNW 5 16 46.40 44.19 12.90 10.60\n", "WHITE 231 973 50.66 51.24 10.55 11.06" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df2.unstack(level=1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Extracting one sub-group" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
IDAGERACESEXMSMIDUUNC Entry to Care YearPrior HIV Care ElsewhereOn ARTART Type
85898147WHITEFNoNo2015NOYesIntegrase
85998249WHITEFNoUnknown2015YESYesIntegrase
86098359WHITEFNoNo2015NOYesIntegrase
86198451WHITEFNoNo2015NOYesIntegrase
86298557WHITEFNoYes2015NOYesNNRTI
\n", "
" ], "text/plain": [ " ID AGE RACE SEX MSM IDU UNC Entry to Care Year \\\n", "858 981 47 WHITE F No No 2015 \n", "859 982 49 WHITE F No Unknown 2015 \n", "860 983 59 WHITE F No No 2015 \n", "861 984 51 WHITE F No No 2015 \n", "862 985 57 WHITE F No Yes 2015 \n", "\n", " Prior HIV Care Elsewhere On ART ART Type \n", "858 NO Yes Integrase \n", "859 YES Yes Integrase \n", "860 NO Yes Integrase \n", "861 NO Yes Integrase \n", "862 NO Yes NNRTI " ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "white_female = grouped.get_group(('WHITE', 'F'))\n", "white_female.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Merging data sets" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
IDTest MonthTest YearHIV RNA
0110201164360
111201217848
215201228773
317201223085
42720055871
\n", "
" ], "text/plain": [ " ID Test Month Test Year HIV RNA\n", "0 1 10 2011 64360\n", "1 1 1 2012 17848\n", "2 1 5 2012 28773\n", "3 1 7 2012 23085\n", "4 2 7 2005 5871" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_hiv.head()" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(12862, 4)" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_hiv.shape" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": true }, "outputs": [], "source": [ "df_subject_hiv = pd.merge(df_subject, df_hiv, on='ID')" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(12877, 13)" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_subject_hiv.shape" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
IDAGERACESEXMSMIDUUNC Entry to Care YearPrior HIV Care ElsewhereOn ARTART TypeTest MonthTest YearHIV RNA
0138AMINDFNoNo2012NOYesIntegrase10201164360
1138AMINDFNoNo2012NOYesIntegrase1201217848
2138AMINDFNoNo2012NOYesIntegrase5201228773
3138AMINDFNoNo2012NOYesIntegrase7201223085
4244AMINDFNoNo2006YESNoNaN720055871
\n", "
" ], "text/plain": [ " ID AGE RACE SEX MSM IDU UNC Entry to Care Year \\\n", "0 1 38 AMIND F No No 2012 \n", "1 1 38 AMIND F No No 2012 \n", "2 1 38 AMIND F No No 2012 \n", "3 1 38 AMIND F No No 2012 \n", "4 2 44 AMIND F No No 2006 \n", "\n", " Prior HIV Care Elsewhere On ART ART Type Test Month Test Year HIV RNA \n", "0 NO Yes Integrase 10 2011 64360 \n", "1 NO Yes Integrase 1 2012 17848 \n", "2 NO Yes Integrase 5 2012 28773 \n", "3 NO Yes Integrase 7 2012 23085 \n", "4 YES No NaN 7 2005 5871 " ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_subject_hiv.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Viral load for one subject" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
IDAGERACESEXMSMIDUUNC Entry to Care YearPrior HIV Care ElsewhereOn ARTART TypeTest MonthTest YearHIV RNA
0138AMINDFNoNo2012NOYesIntegrase10201164360
1138AMINDFNoNo2012NOYesIntegrase1201217848
2138AMINDFNoNo2012NOYesIntegrase5201228773
3138AMINDFNoNo2012NOYesIntegrase7201223085
\n", "
" ], "text/plain": [ " ID AGE RACE SEX MSM IDU UNC Entry to Care Year \\\n", "0 1 38 AMIND F No No 2012 \n", "1 1 38 AMIND F No No 2012 \n", "2 1 38 AMIND F No No 2012 \n", "3 1 38 AMIND F No No 2012 \n", "\n", " Prior HIV Care Elsewhere On ART ART Type Test Month Test Year HIV RNA \n", "0 NO Yes Integrase 10 2011 64360 \n", "1 NO Yes Integrase 1 2012 17848 \n", "2 NO Yes Integrase 5 2012 28773 \n", "3 NO Yes Integrase 7 2012 23085 " ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_subject_hiv[df_subject_hiv.ID == 1]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Who has the most time series data?" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
HIV RNA
ID
14
26
33
42
63
\n", "
" ], "text/plain": [ " HIV RNA\n", "ID \n", "1 4\n", "2 6\n", "3 3\n", "4 2\n", "6 3" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "counts = df_subject_hiv.groupby(['ID'])[['HIV RNA']].count()\n", "counts.head()" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
HIV RNA
ID
10646
\n", "
" ], "text/plain": [ " HIV RNA\n", "ID \n", "106 46" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "subject_id = counts[counts['HIV RNA'] == counts['HIV RNA'].max()]\n", "subject_id" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "106" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "subject_id.index[0]" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
IDAGERACESEXMSMIDUUNC Entry to Care YearPrior HIV Care ElsewhereOn ARTART TypeTest MonthTest YearHIV RNA
42110668BLACKFNoNo2011YESYesOther1199811000
42210668BLACKFNoNo2011YESYesOther619989203
42310668BLACKFNoNo2011YESYesOther919987147
42410668BLACKFNoNo2011YESYesOther1119987355
42510668BLACKFNoNo2011YESYesOther1199912083
42610668BLACKFNoNo2011YESYesOther31999400
42710668BLACKFNoNo2011YESYesOther819991800
42810668BLACKFNoNo2011YESYesOther81999200000
42910668BLACKFNoNo2011YESYesOther101999810
43010668BLACKFNoNo2011YESYesOther12199910000
43110668BLACKFNoNo2011YESYesOther12199910000
43210668BLACKFNoNo2011YESYesOther1200013800
43310668BLACKFNoNo2011YESYesOther2200020000
43410668BLACKFNoNo2011YESYesOther220014838
43510668BLACKFNoNo2011YESYesOther520014800
43610668BLACKFNoNo2011YESYesOther9200116238
43710668BLACKFNoNo2011YESYesOther10200110000
43810668BLACKFNoNo2011YESYesOther4200219938
43910668BLACKFNoNo2011YESYesOther5200219000
44010668BLACKFNoNo2011YESYesOther11200233947
44110668BLACKFNoNo2011YESYesOther11200230000
44210668BLACKFNoNo2011YESYesOther1200330000
44310668BLACKFNoNo2011YESYesOther6200310652
44410668BLACKFNoNo2011YESYesOther2200424488
44510668BLACKFNoNo2011YESYesOther42004400
44610668BLACKFNoNo2011YESYesOther102004641
44710668BLACKFNoNo2011YESYesOther112004600
44810668BLACKFNoNo2011YESYesOther1220041914
44910668BLACKFNoNo2011YESYesOther3200523588
45010668BLACKFNoNo2011YESYesOther3200523000
45110668BLACKFNoNo2011YESYesOther620056577
45210668BLACKFNoNo2011YESYesOther820051000
45310668BLACKFNoNo2011YESYesOther122006100000
45410668BLACKFNoNo2011YESYesOther122006100000
45510668BLACKFNoNo2011YESYesOther220071058
45610668BLACKFNoNo2011YESYesOther10200755
45710668BLACKFNoNo2011YESYesOther11200755
45810668BLACKFNoNo2011YESYesOther7200872
45910668BLACKFNoNo2011YESYesOther7200872
46010668BLACKFNoNo2011YESYesOther72009521
46110668BLACKFNoNo2011YESYesOther72009400
46210668BLACKFNoNo2011YESYesOther5201012556
46310668BLACKFNoNo2011YESYesOther5201012550
46410668BLACKFNoNo2011YESYesOther520109561
46510668BLACKFNoNo2011YESYesOther5201150
46610668BLACKFNoNo2011YESYesOther9201149
\n", "
" ], "text/plain": [ " ID AGE RACE SEX MSM IDU UNC Entry to Care Year \\\n", "421 106 68 BLACK F No No 2011 \n", "422 106 68 BLACK F No No 2011 \n", "423 106 68 BLACK F No No 2011 \n", "424 106 68 BLACK F No No 2011 \n", "425 106 68 BLACK F No No 2011 \n", "426 106 68 BLACK F No No 2011 \n", "427 106 68 BLACK F No No 2011 \n", "428 106 68 BLACK F No No 2011 \n", "429 106 68 BLACK F No No 2011 \n", "430 106 68 BLACK F No No 2011 \n", "431 106 68 BLACK F No No 2011 \n", "432 106 68 BLACK F No No 2011 \n", "433 106 68 BLACK F No No 2011 \n", "434 106 68 BLACK F No No 2011 \n", "435 106 68 BLACK F No No 2011 \n", "436 106 68 BLACK F No No 2011 \n", "437 106 68 BLACK F No No 2011 \n", "438 106 68 BLACK F No No 2011 \n", "439 106 68 BLACK F No No 2011 \n", "440 106 68 BLACK F No No 2011 \n", "441 106 68 BLACK F No No 2011 \n", "442 106 68 BLACK F No No 2011 \n", "443 106 68 BLACK F No No 2011 \n", "444 106 68 BLACK F No No 2011 \n", "445 106 68 BLACK F No No 2011 \n", "446 106 68 BLACK F No No 2011 \n", "447 106 68 BLACK F No No 2011 \n", "448 106 68 BLACK F No No 2011 \n", "449 106 68 BLACK F No No 2011 \n", "450 106 68 BLACK F No No 2011 \n", "451 106 68 BLACK F No No 2011 \n", "452 106 68 BLACK F No No 2011 \n", "453 106 68 BLACK F No No 2011 \n", "454 106 68 BLACK F No No 2011 \n", "455 106 68 BLACK F No No 2011 \n", "456 106 68 BLACK F No No 2011 \n", "457 106 68 BLACK F No No 2011 \n", "458 106 68 BLACK F No No 2011 \n", "459 106 68 BLACK F No No 2011 \n", "460 106 68 BLACK F No No 2011 \n", "461 106 68 BLACK F No No 2011 \n", "462 106 68 BLACK F No No 2011 \n", "463 106 68 BLACK F No No 2011 \n", "464 106 68 BLACK F No No 2011 \n", "465 106 68 BLACK F No No 2011 \n", "466 106 68 BLACK F No No 2011 \n", "\n", " Prior HIV Care Elsewhere On ART ART Type Test Month Test Year HIV RNA \n", "421 YES Yes Other 1 1998 11000 \n", "422 YES Yes Other 6 1998 9203 \n", "423 YES Yes Other 9 1998 7147 \n", "424 YES Yes Other 11 1998 7355 \n", "425 YES Yes Other 1 1999 12083 \n", "426 YES Yes Other 3 1999 400 \n", "427 YES Yes Other 8 1999 1800 \n", "428 YES Yes Other 8 1999 200000 \n", "429 YES Yes Other 10 1999 810 \n", "430 YES Yes Other 12 1999 10000 \n", "431 YES Yes Other 12 1999 10000 \n", "432 YES Yes Other 1 2000 13800 \n", "433 YES Yes Other 2 2000 20000 \n", "434 YES Yes Other 2 2001 4838 \n", "435 YES Yes Other 5 2001 4800 \n", "436 YES Yes Other 9 2001 16238 \n", "437 YES Yes Other 10 2001 10000 \n", "438 YES Yes Other 4 2002 19938 \n", "439 YES Yes Other 5 2002 19000 \n", "440 YES Yes Other 11 2002 33947 \n", "441 YES Yes Other 11 2002 30000 \n", "442 YES Yes Other 1 2003 30000 \n", "443 YES Yes Other 6 2003 10652 \n", "444 YES Yes Other 2 2004 24488 \n", "445 YES Yes Other 4 2004 400 \n", "446 YES Yes Other 10 2004 641 \n", "447 YES Yes Other 11 2004 600 \n", "448 YES Yes Other 12 2004 1914 \n", "449 YES Yes Other 3 2005 23588 \n", "450 YES Yes Other 3 2005 23000 \n", "451 YES Yes Other 6 2005 6577 \n", "452 YES Yes Other 8 2005 1000 \n", "453 YES Yes Other 12 2006 100000 \n", "454 YES Yes Other 12 2006 100000 \n", "455 YES Yes Other 2 2007 1058 \n", "456 YES Yes Other 10 2007 55 \n", "457 YES Yes Other 11 2007 55 \n", "458 YES Yes Other 7 2008 72 \n", "459 YES Yes Other 7 2008 72 \n", "460 YES Yes Other 7 2009 521 \n", "461 YES Yes Other 7 2009 400 \n", "462 YES Yes Other 5 2010 12556 \n", "463 YES Yes Other 5 2010 12550 \n", "464 YES Yes Other 5 2010 9561 \n", "465 YES Yes Other 5 2011 50 \n", "466 YES Yes Other 9 2011 49 " ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(df_subject_hiv[df_subject_hiv.ID == subject_id.index[0]].\n", " sort_values(['Test Year', 'Test Month']))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Binning into age categories" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
meanminmax
Age Grpup
(0, 30]1680121940306875
(30, 60]99641121923000
(60, 105]115820784545454
\n", "
" ], "text/plain": [ " mean min max\n", "Age Grpup \n", "(0, 30] 168012 19 40306875\n", "(30, 60] 99641 1 21923000\n", "(60, 105] 115820 7 84545454" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_subject_hiv['Age Grpup'] = pd.cut(df_subject_hiv['AGE'], [0, 30, 60, 105])\n", "df_subject_hiv.groupby('Age Grpup')['HIV RNA'].agg(['mean', 'min', 'max'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercises" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**1**. Load the worksheet `CD4 Count` in the spreadsheet `data/HIV Boot Camp.xls` into a data frame named `df_cd4`." ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": false }, "outputs": [], "source": [ "df_cd4 = pd.read_excel('data/HIV Boot Camp.xls', sheetname='CD4 Count')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**2**. How many rows and columns are there in df_cd4?" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(3716, 4)" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_cd4.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**3**. Show 6 random rows from df_cd4." ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
IDTest MonthTest YearCD4 Count
2671311712004473
1477165052009273
454501102000523
2310262781997143
357441021199610
1426159712010154
\n", "
" ], "text/plain": [ " ID Test Month Test Year CD4 Count\n", "2671 3117 1 2004 473\n", "1477 1650 5 2009 273\n", "454 501 10 2000 523\n", "2310 2627 8 1997 143\n", "3574 4102 1 1996 10\n", "1426 1597 1 2010 154" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_cd4.sample(6)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**4**. What are the largest and smallest CD4 counts?" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(0, 3900)" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "col = 'CD4 Count'\n", "df_cd4[col].min(), df_cd4[col].max()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**5**. What were the largest and smallest CD4 counts for tests in Dec 2010?" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(9, 900)" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df1 = df_cd4[(df_cd4['Test Month'] == 12) & (df_hiv['Test Year']==2010)]\n", "df1[col].min(), df1[col].max()" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(165, 782)" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df2 = df_cd4.groupby(['Test Year', 'Test Month']).get_group((2010, 12))\n", "df2[col].min(), df2[col].max()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**6**. Sort df_cd4 first by ID (ascending), then by Test Year (descending), then by Test Month (ascending). Show the first 6 rows before and after sorting." ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
IDTest MonthTest YearCD4 Count
0112012211
1272005388
2332005371
3472003392
466200135
\n", "
" ], "text/plain": [ " ID Test Month Test Year CD4 Count\n", "0 1 1 2012 211\n", "1 2 7 2005 388\n", "2 3 3 2005 371\n", "3 4 7 2003 392\n", "4 6 6 2001 35" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_cd4.head()" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
IDTest MonthTest YearCD4 Count
0112012211
1272005388
2332005371
3472003392
466200135
\n", "
" ], "text/plain": [ " ID Test Month Test Year CD4 Count\n", "0 1 1 2012 211\n", "1 2 7 2005 388\n", "2 3 3 2005 371\n", "3 4 7 2003 392\n", "4 6 6 2001 35" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_cd4.sort_values(['ID', 'Test Year', 'Test Month'], ascending=[True, False, True]).head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**7**. Create a new column `CD4 Group` that categorizes CD4 counts into the ranges (0-199, 200-500, 500-4000)." ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
IDTest MonthTest YearCD4 CountCD4 Group
0112012211[200, 500)
1272005388[200, 500)
2332005371[200, 500)
3472003392[200, 500)
466200135[0, 200)
\n", "
" ], "text/plain": [ " ID Test Month Test Year CD4 Count CD4 Group\n", "0 1 1 2012 211 [200, 500)\n", "1 2 7 2005 388 [200, 500)\n", "2 3 3 2005 371 [200, 500)\n", "3 4 7 2003 392 [200, 500)\n", "4 6 6 2001 35 [0, 200)" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_cd4['CD4 Group'] = pd.cut(df_cd4[col], bins=[0,200,500,4000], right=False)\n", "df_cd4.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**8**. Find the mean and median CD4 count for each subject. Show these values for subjects with IDs in (10, 25, 30, 40, 50, 60)." ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
meanmedian
ID
10798798
25283283
30876876
4011171117
50510510
60763763
\n", "
" ], "text/plain": [ " mean median\n", "ID \n", "10 798 798\n", "25 283 283\n", "30 876 876\n", "40 1117 1117\n", "50 510 510\n", "60 763 763" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "grouped = df_cd4.groupby('ID')\n", "summary = grouped[col].agg(['mean', 'median'])\n", "summary.ix[[10,25,30,40,50,60]]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**9**. Merge `df_subject` with `df_cd4` by joining on `ID` to create a new data frame df_subject_cd4. Show the first 6 rows." ] }, { "cell_type": "code", "execution_count": 37, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
IDAGERACESEXMSMIDUUNC Entry to Care YearPrior HIV Care ElsewhereOn ARTART TypeTest MonthTest YearCD4 CountCD4 Group
0138AMINDFNoNo2012NOYesIntegrase12012211[200, 500)
1244AMINDFNoNo2006YESNoNaN72005388[200, 500)
2333AMINDFNoNo2005NONoNaN32005371[200, 500)
3460AMINDFNoYes2003NOYesIntegrase72003392[200, 500)
4647AMINDFNoNo2001YESYesOther6200135[0, 200)
\n", "
" ], "text/plain": [ " ID AGE RACE SEX MSM IDU UNC Entry to Care Year \\\n", "0 1 38 AMIND F No No 2012 \n", "1 2 44 AMIND F No No 2006 \n", "2 3 33 AMIND F No No 2005 \n", "3 4 60 AMIND F No Yes 2003 \n", "4 6 47 AMIND F No No 2001 \n", "\n", " Prior HIV Care Elsewhere On ART ART Type Test Month Test Year \\\n", "0 NO Yes Integrase 1 2012 \n", "1 YES No NaN 7 2005 \n", "2 NO No NaN 3 2005 \n", "3 NO Yes Integrase 7 2003 \n", "4 YES Yes Other 6 2001 \n", "\n", " CD4 Count CD4 Group \n", "0 211 [200, 500) \n", "1 388 [200, 500) \n", "2 371 [200, 500) \n", "3 392 [200, 500) \n", "4 35 [0, 200) " ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_subject_cd4 = pd.merge(df_subject, df_cd4, on='ID')\n", "df_subject_cd4.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**10**. Find the mean, minimum and maximum CD4 count for subgroups differing in RACE AND SEX." ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
meanminmax
RACESEX
AMINDF298.5310798
M361.507871
ASIANF331.50283380
M326.334688
BLACKF372.7233900
M362.3602000
HISPNF359.8229812
M373.33141146
OTHERF372.0441062
M361.0971434
UNKNWF473.80296660
M448.6914848
WHITEF349.2791559
M365.6111817
\n", "
" ], "text/plain": [ " mean min max\n", "RACE SEX \n", "AMIND F 298.53 10 798\n", " M 361.50 7 871\n", "ASIAN F 331.50 283 380\n", " M 326.33 4 688\n", "BLACK F 372.72 3 3900\n", " M 362.36 0 2000\n", "HISPN F 359.82 29 812\n", " M 373.33 14 1146\n", "OTHER F 372.04 4 1062\n", " M 361.09 7 1434\n", "UNKNW F 473.80 296 660\n", " M 448.69 14 848\n", "WHITE F 349.27 9 1559\n", " M 365.61 1 1817" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "grouped = df_subject_cd4.groupby(['RACE', 'SEX'])\n", "grouped[col].agg(['mean', 'min', 'max'])" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "## Sneak Preview: Visualizing data" ] }, { "cell_type": "code", "execution_count": 39, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import seaborn as sns\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 40, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nMDCRE8+bN5tp0/omFJyk7mT5IWk82rHs+Na3vrnN8tKlS1oYzcRt2bJlm+X583dsYTRTy4wZ07ZZ\n7oTX7o477gBg7733bnEkmqh2TFRXln7vzrZNe5/HBJv6rl27fiKHS+ow9XwgW35IKpvqZcfQ0PA2\ny6tWPdnCaCZu+vTpW5PV6dOnT/n7aaY3vGExd95559blTnjtvvrViwH48IdPbXEktXXCw4Bmacem\nv7cD64CDyisiYgFFn9QbWhOSJElSZ1i8+E01l6eqF71o75rL2r6FCxcRsZCIhR0xCJF9bjtL2yWq\nmbkZOBc4OyIOiYh9gH8Crs3Mm1sbnSRJ0tR2yCGHssMOs9lhh9kdMUruf/5nf81ljc3ixYezePHh\nrQ5jUtjntrO0Q9Pf4RrrTqGI7RJgOnAVcEIzg5IkSepUnVCTqsnRCTWpZevXD9Rc1tTU8kQ1Mw+u\nsW4QOLn0I0mSpEnUCTWpZb/3ewv5+c9/tnVZ3axnhGVNRW3X9FeSJEkaK5v+Sp3JRFWSJElSBxge\nYVlTkYmqJElSl+nvv6tjRkV9xSteWXNZ0tTW8j6qkiRJaq7yiKidMJDOr3+dNZfVjeyj2kmsUZUk\nSeoinTbX5G9+85uay+o+s2fPrrmsqclEVZIkqYt02lyTTz21peayus/zn79HzWVNTSaqkiRJkqa8\nn/70xprLmppMVCVJkrrI4sWH11yeqnp6emouS5raTFQlSZK6yMKFi4hYSMTCjhhM6TWv+ZOay+o+\nixe/qeaypiYTVUmSpC6zePHhHVGbCvD2tx9Xc1nd55BDDq25rKnJRFWSJKnLLFy4qCNqU8tmzZrF\nrFmzWh2GWuzii8+vuaypyURVkiSpy/T339URU9NAcS8bN25k48aNHXNPGp/rrvthzWVNTSaqkiRJ\nXeayyy7isssuanUYk+KCC/6x5rK6z9DQcM1lTU0mqpIkSV2kv/8uVq68j5Ur7+uIGshHH11Vc1nd\np7e3p+aypqYpm6hGxNKI+FlE/EdEvLXV8UiSJE0FlTWpnVCrOjw8XHNZ3cf3QmeZkolqRARwKvAa\n4ADgrIjYobVRSZIktb9HHnm45rI01U2bNq3msqamqfoveBhwcWY+ARARrwa2tDQiSZIkSS3T19fH\nli1bti5ramt5ohoR5wG9mbmsYl0vcCZwFLAjcDVwfGY+UtplL2BDRFwDPBs4KzP/u7mRS5IkTT3P\n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\nASKievMepd8PVK1/ENizdPyNEXENcDswCLyjYcFKkiRJkpqq5YMp1TAbGMrMwar1m4BZ5T8y8wzg\njGYGJkmSJElqvHZMVDcAvRHRm5mVAyTNBAYmcuL583fsmVBkkrqW5Yek8bDskKTxacd5VFeWfu9e\ntf55PLM5sCRJkiSpw7Rjono7sA44qLwiIhYAC4AbWhOSJEmSJKlZ2q7pb2ZujohzgbMjYjWwCvgC\ncG1m3tza6CRJkiRJjdYOiepwjXWnUMR2CTAduAo4oZlBSZIkSZJao2d4uFaeKEmSJElSa7RjH1VJ\nkiRJUhczUZUkSZIktRUTVUmSJElSWzFRlSRJkiS1FRNVSZIkSVJbMVGVJEmSJLUVE1VJkiRJUlsx\nUZUkSZIktRUTVUmSJElSWzFRlSRJkiS1FRNVSZIkSVJbMVGVJEmSJLUVE1VJkiRJUlsxUZUkSZIk\ntRUTVUmSJElSWzFRlSRJkiS1FRNVSZIkSVJbMVGVJEmSJLUVE1VJkiRJUlsxUZUkSZIktRUTVUmS\nJElSWzFRlSRJkiS1FRNVSZIkSVJbMVGVJEmSJLUVE1VJkiRJUlsxUZUkSZIktRUTVUmSJElSWzFR\nlSRJkiS1FRNVSZIkSVJbMVGVJEmSJLWVaa0OQO0nIq4DXlW1ehhYB/wK+GxmXjrCsbcC+wCHZOb3\nR7nGIcB7gD8CngXcC1wJLM/Mxyr2uwd4wQinGQb+MTPfu92bqkNEvBC4G1iamZfV2H40cAGwR2Y+\nWFo3BJySmZ+o2O9FwEeAVwM7A6uBG4BPZOYdFftdCBxVdZktwMPAt4G/zcy1pX2/CrwdODQzr6oR\n238BN2TmseO5d6le3V5eVFx7J+Ak4M+B/wWsB34JfLmyHImIo4ALt3O64czsi4hXA9cAB2TmT2pc\n8+PARzJz+hjPPQzsnpmPRMSpwKk19lkP3A9cAZyamYPbiVWqS7eXGRFxEHAtI/+/PgU4PTN7S3+X\n/19/OjP/usb+XwH+ODP3Kv39cSrKhYr9ekrneTvwocw8u7Tvx4DjM/OLNc79A6A3Mw+OiE8BfwXM\ny8wnK/b5X8B/AZuBXTJzoGLb3sAvgGMy86KxvkZSmTWqqmUYuBl4ObBf6ecA4J3AU8AlEfG66oNK\nidk+wJ3Au0Y6eUR8GvgOxYfS8cChwFeAZcCNEbFrVSz/UhVL+ecVwFkTuM/xGi79jCgiXgz8FHg2\n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\nQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "g = sns.factorplot(data=df_subject_hiv, x='On ART', y='HIV RNA', \n", " col='RACE', col_wrap=3, kind='box', hue='SEX',\n", " palette='Oranges')\n", "g.axes[0].set_yscale('log')\n", "pass" ] } ], "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": 0 }