Skip to content

Instantly share code, notes, and snippets.

@kirkhunter
Last active May 15, 2016 01:43
Show Gist options
  • Save kirkhunter/0ead72f65bde18862a93ffae8789cace to your computer and use it in GitHub Desktop.
Save kirkhunter/0ead72f65bde18862a93ffae8789cace to your computer and use it in GitHub Desktop.
US Healthcare Data Dashboard

Final Project

The original data set can be found here: https://data.cms.gov/Medicare/Inpatient-Prospective-Payment-System-IPPS-Provider/97k6-zzx3

Thesis

My dashboard first communicates the average total covered healthcare charges across the US. This allows the viewer to see how the covered charges varies among the states.

The first image in the dashboard is the bar chart, which shows a selection of the US states and shows median covered charges per state. Hovering over an individual bar (which corresponds to one US state) alters the pie chart beside the bars. The pie chart then shows the minimum, median, and maximum average covered charges among all hospitals across the state.

The final image in the dashboard is a map that communicates with a color gradient the median covered charges across all US states.

Process

The data set used for the final project is from data.gov and it communicates healthcare financial information among hospitals across the US. To make the dashboard I aggregated the average covered charges by state, considering minimum, median, and maximum covered charges among hospitals.

In my EDA process I considered visualizing data for one state, perhaps creating a dashboard specific to California hospitals. Ultimately I chose to visualize healthcare data from across the US because I felt it was more compelling to allow the viewer to get a sense of which states have more or less average charges covered.

The visual encodings are through bars, color gradient, pie chart, annotation, and a legend. The bars are an important encoding of the data because it gives the viewer a sense of how median covered charges vary by state as well as an exact measure via annotation. The pie chart gives a visual depiction of the difference between minimum, maximum, and median covered charges among each state as well as in total across all US states. Finally, the map and color gradient give the viewer a chance to visually compare these covered charges among each state.

The interactive elements of the dashboard include hover effects on the bar chart, pie chart, and map. The viewer can hover over a given bar which corresponds to a US state and this updates the pie chart with this state’s data. hovering over the sections of the pie chart updates the bars. By default the bars show the median covered charges for each state. By hovering over a section of the pie chart updates the bars to show that category (minimum, median, maximum) for each state. Finally, hovering over a given state on the map gives the exact value of the median covered charges.

Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import numpy as np\n",
"import pandas as pd\n",
"import re\n",
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"dat = pd.read_csv('Inpatient_Prospective_Payment_System__IPPS__Provider_Summary_for_the_Top_100_Diagnosis-Related_Groups__DRG__-_FY2011.csv')"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>DRG Definition</th>\n",
" <th>Provider Id</th>\n",
" <th>Provider Name</th>\n",
" <th>Provider Street Address</th>\n",
" <th>Provider City</th>\n",
" <th>Provider State</th>\n",
" <th>Provider Zip Code</th>\n",
" <th>Hospital Referral Region Description</th>\n",
" <th>Total Discharges</th>\n",
" <th>Average Covered Charges</th>\n",
" <th>Average Total Payments</th>\n",
" <th>Average Medicare Payments</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>039 - EXTRACRANIAL PROCEDURES W/O CC/MCC</td>\n",
" <td>10001</td>\n",
" <td>SOUTHEAST ALABAMA MEDICAL CENTER</td>\n",
" <td>1108 ROSS CLARK CIRCLE</td>\n",
" <td>DOTHAN</td>\n",
" <td>AL</td>\n",
" <td>36301</td>\n",
" <td>AL - Dothan</td>\n",
" <td>91</td>\n",
" <td>$32963.07</td>\n",
" <td>$5777.24</td>\n",
" <td>$4763.73</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>039 - EXTRACRANIAL PROCEDURES W/O CC/MCC</td>\n",
" <td>10005</td>\n",
" <td>MARSHALL MEDICAL CENTER SOUTH</td>\n",
" <td>2505 U S HIGHWAY 431 NORTH</td>\n",
" <td>BOAZ</td>\n",
" <td>AL</td>\n",
" <td>35957</td>\n",
" <td>AL - Birmingham</td>\n",
" <td>14</td>\n",
" <td>$15131.85</td>\n",
" <td>$5787.57</td>\n",
" <td>$4976.71</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>039 - EXTRACRANIAL PROCEDURES W/O CC/MCC</td>\n",
" <td>10006</td>\n",
" <td>ELIZA COFFEE MEMORIAL HOSPITAL</td>\n",
" <td>205 MARENGO STREET</td>\n",
" <td>FLORENCE</td>\n",
" <td>AL</td>\n",
" <td>35631</td>\n",
" <td>AL - Birmingham</td>\n",
" <td>24</td>\n",
" <td>$37560.37</td>\n",
" <td>$5434.95</td>\n",
" <td>$4453.79</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>039 - EXTRACRANIAL PROCEDURES W/O CC/MCC</td>\n",
" <td>10011</td>\n",
" <td>ST VINCENT'S EAST</td>\n",
" <td>50 MEDICAL PARK EAST DRIVE</td>\n",
" <td>BIRMINGHAM</td>\n",
" <td>AL</td>\n",
" <td>35235</td>\n",
" <td>AL - Birmingham</td>\n",
" <td>25</td>\n",
" <td>$13998.28</td>\n",
" <td>$5417.56</td>\n",
" <td>$4129.16</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>039 - EXTRACRANIAL PROCEDURES W/O CC/MCC</td>\n",
" <td>10016</td>\n",
" <td>SHELBY BAPTIST MEDICAL CENTER</td>\n",
" <td>1000 FIRST STREET NORTH</td>\n",
" <td>ALABASTER</td>\n",
" <td>AL</td>\n",
" <td>35007</td>\n",
" <td>AL - Birmingham</td>\n",
" <td>18</td>\n",
" <td>$31633.27</td>\n",
" <td>$5658.33</td>\n",
" <td>$4851.44</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" DRG Definition Provider Id \\\n",
"0 039 - EXTRACRANIAL PROCEDURES W/O CC/MCC 10001 \n",
"1 039 - EXTRACRANIAL PROCEDURES W/O CC/MCC 10005 \n",
"2 039 - EXTRACRANIAL PROCEDURES W/O CC/MCC 10006 \n",
"3 039 - EXTRACRANIAL PROCEDURES W/O CC/MCC 10011 \n",
"4 039 - EXTRACRANIAL PROCEDURES W/O CC/MCC 10016 \n",
"\n",
" Provider Name Provider Street Address Provider City \\\n",
"0 SOUTHEAST ALABAMA MEDICAL CENTER 1108 ROSS CLARK CIRCLE DOTHAN \n",
"1 MARSHALL MEDICAL CENTER SOUTH 2505 U S HIGHWAY 431 NORTH BOAZ \n",
"2 ELIZA COFFEE MEMORIAL HOSPITAL 205 MARENGO STREET FLORENCE \n",
"3 ST VINCENT'S EAST 50 MEDICAL PARK EAST DRIVE BIRMINGHAM \n",
"4 SHELBY BAPTIST MEDICAL CENTER 1000 FIRST STREET NORTH ALABASTER \n",
"\n",
" Provider State Provider Zip Code Hospital Referral Region Description \\\n",
"0 AL 36301 AL - Dothan \n",
"1 AL 35957 AL - Birmingham \n",
"2 AL 35631 AL - Birmingham \n",
"3 AL 35235 AL - Birmingham \n",
"4 AL 35007 AL - Birmingham \n",
"\n",
" Total Discharges Average Covered Charges Average Total Payments \\\n",
"0 91 $32963.07 $5777.24 \n",
"1 14 $15131.85 $5787.57 \n",
"2 24 $37560.37 $5434.95 \n",
"3 25 $13998.28 $5417.56 \n",
"4 18 $31633.27 $5658.33 \n",
"\n",
" Average Medicare Payments \n",
"0 $4763.73 \n",
"1 $4976.71 \n",
"2 $4453.79 \n",
"3 $4129.16 \n",
"4 $4851.44 "
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dat.head()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def get_vals(x):\n",
" state = x[5]\n",
" covered = x[9]\n",
" total = x[10]\n",
" medicare = x[11]\n",
" "
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"dat.columns = [u'DRG Definition', u'Provider Id', u'Provider Name',\n",
" u'Provider Street Address', u'Provider City', u'Provider State',\n",
" u'Provider Zip Code', u'Hospital Referral Region Description',\n",
" u'Total Discharges', u'Average Covered Charges',\n",
" u'Average Total Payments', u'Average Medicare Payments']"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/kirkhunter/anaconda/lib/python2.7/site-packages/IPython/kernel/__main__.py:2: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
"Try using .loc[row_indexer,col_indexer] = value instead\n",
"\n",
"See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
" from IPython.kernel.zmq import kernelapp as app\n",
"/Users/kirkhunter/anaconda/lib/python2.7/site-packages/IPython/kernel/__main__.py:3: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
"Try using .loc[row_indexer,col_indexer] = value instead\n",
"\n",
"See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
" app.launch_new_instance()\n",
"/Users/kirkhunter/anaconda/lib/python2.7/site-packages/IPython/kernel/__main__.py:4: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
"Try using .loc[row_indexer,col_indexer] = value instead\n",
"\n",
"See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
"/Users/kirkhunter/anaconda/lib/python2.7/site-packages/IPython/kernel/__main__.py:5: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
"Try using .loc[row_indexer,col_indexer] = value instead\n",
"\n",
"See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
"/Users/kirkhunter/anaconda/lib/python2.7/site-packages/IPython/kernel/__main__.py:6: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
"Try using .loc[row_indexer,col_indexer] = value instead\n",
"\n",
"See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
"/Users/kirkhunter/anaconda/lib/python2.7/site-packages/IPython/kernel/__main__.py:7: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
"Try using .loc[row_indexer,col_indexer] = value instead\n",
"\n",
"See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n"
]
},
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Provider State</th>\n",
" <th>Average Covered Charges</th>\n",
" <th>Average Total Payments</th>\n",
" <th>Average Medicare Payments</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>AL</td>\n",
" <td>32963.07</td>\n",
" <td>5777.24</td>\n",
" <td>4763.73</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>AL</td>\n",
" <td>15131.85</td>\n",
" <td>5787.57</td>\n",
" <td>4976.71</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>AL</td>\n",
" <td>37560.37</td>\n",
" <td>5434.95</td>\n",
" <td>4453.79</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>AL</td>\n",
" <td>13998.28</td>\n",
" <td>5417.56</td>\n",
" <td>4129.16</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>AL</td>\n",
" <td>31633.27</td>\n",
" <td>5658.33</td>\n",
" <td>4851.44</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Provider State Average Covered Charges Average Total Payments \\\n",
"0 AL 32963.07 5777.24 \n",
"1 AL 15131.85 5787.57 \n",
"2 AL 37560.37 5434.95 \n",
"3 AL 13998.28 5417.56 \n",
"4 AL 31633.27 5658.33 \n",
"\n",
" Average Medicare Payments \n",
"0 4763.73 \n",
"1 4976.71 \n",
"2 4453.79 \n",
"3 4129.16 \n",
"4 4851.44 "
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sub = dat[['Provider State', 'Average Covered Charges', 'Average Total Payments', 'Average Medicare Payments']]\n",
"sub['Average Covered Charges'] = sub['Average Covered Charges'].apply(lambda x: x[1:])\n",
"sub['Average Total Payments'] = sub['Average Total Payments'].apply(lambda x: x[1:])\n",
"sub['Average Medicare Payments'] = sub['Average Medicare Payments'].apply(lambda x: x[1:])\n",
"sub['Average Covered Charges'] = sub['Average Covered Charges'].astype(float)\n",
"sub['Average Total Payments'] = sub['Average Total Payments'].astype(float)\n",
"sub['Average Medicare Payments'] = sub['Average Medicare Payments'].astype(float)\n",
"sub.head()"
]
},
{
"cell_type": "code",
"execution_count": 106,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>provider_state</th>\n",
" <th>min_average_covered_charges</th>\n",
" <th>max_average_covered_charges</th>\n",
" <th>med_average_covered_charges</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Alaska</td>\n",
" <td>4758.84</td>\n",
" <td>190709.90</td>\n",
" <td>31073.18</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Alabama</td>\n",
" <td>2536.69</td>\n",
" <td>459985.27</td>\n",
" <td>21620.27</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Arkansas</td>\n",
" <td>2956.50</td>\n",
" <td>333470.45</td>\n",
" <td>19270.63</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Arizona</td>\n",
" <td>4585.50</td>\n",
" <td>285720.46</td>\n",
" <td>30215.73</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>California</td>\n",
" <td>6833.53</td>\n",
" <td>929118.90</td>\n",
" <td>49465.09</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" provider_state min_average_covered_charges max_average_covered_charges \\\n",
"0 Alaska 4758.84 190709.90 \n",
"1 Alabama 2536.69 459985.27 \n",
"2 Arkansas 2956.50 333470.45 \n",
"3 Arizona 4585.50 285720.46 \n",
"4 California 6833.53 929118.90 \n",
"\n",
" med_average_covered_charges \n",
"0 31073.18 \n",
"1 21620.27 \n",
"2 19270.63 \n",
"3 30215.73 \n",
"4 49465.09 "
]
},
"execution_count": 106,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"minsub = sub[['Average Covered Charges']].groupby(sub['Provider State']).apply(min)\n",
"minsub.columns = ['min_average_covered_charges']\n",
"maxsub = sub[['Average Covered Charges']].groupby(sub['Provider State']).apply(max)\n",
"maxsub.columns = ['max_average_covered_charges']\n",
"medsub = sub['Average Covered Charges'].groupby(sub['Provider State']).apply(np.median).to_frame()\n",
"medsub.columns = ['med_average_covered_charges']\n",
"joined = minsub.join([maxsub, medsub])\n",
"joined = joined.reset_index()\n",
"joined.columns = [\"prov_state\", \"min_average_covered_charges\", \"max_average_covered_charges\", \"med_average_covered_charges\"]\n",
"joined['provider_state'] = joined['prov_state'].apply(lambda x: us_state_names[x])\n",
"joined = joined[[\"provider_state\", \"min_average_covered_charges\", \"max_average_covered_charges\", \"med_average_covered_charges\"]]\n",
"joined.head()"
]
},
{
"cell_type": "code",
"execution_count": 100,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"us_state_abbrev = {\n",
" 'Alabama': 'AL',\n",
" 'Alaska': 'AK',\n",
" 'Arizona': 'AZ',\n",
" 'Arkansas': 'AR',\n",
" 'California': 'CA',\n",
" 'Colorado': 'CO',\n",
" 'Connecticut': 'CT',\n",
" 'Delaware': 'DE',\n",
" 'District of Columbia': 'DC',\n",
" 'Florida': 'FL',\n",
" 'Georgia': 'GA',\n",
" 'Hawaii': 'HI',\n",
" 'Idaho': 'ID',\n",
" 'Illinois': 'IL',\n",
" 'Indiana': 'IN',\n",
" 'Iowa': 'IA',\n",
" 'Kansas': 'KS',\n",
" 'Kentucky': 'KY',\n",
" 'Louisiana': 'LA',\n",
" 'Maine': 'ME',\n",
" 'Maryland': 'MD',\n",
" 'Massachusetts': 'MA',\n",
" 'Michigan': 'MI',\n",
" 'Minnesota': 'MN',\n",
" 'Mississippi': 'MS',\n",
" 'Missouri': 'MO',\n",
" 'Montana': 'MT',\n",
" 'Nebraska': 'NE',\n",
" 'Nevada': 'NV',\n",
" 'New Hampshire': 'NH',\n",
" 'New Jersey': 'NJ',\n",
" 'New Mexico': 'NM',\n",
" 'New York': 'NY',\n",
" 'North Carolina': 'NC',\n",
" 'North Dakota': 'ND',\n",
" 'Ohio': 'OH',\n",
" 'Oklahoma': 'OK',\n",
" 'Oregon': 'OR',\n",
" 'Pennsylvania': 'PA',\n",
" 'Rhode Island': 'RI',\n",
" 'South Carolina': 'SC',\n",
" 'South Dakota': 'SD',\n",
" 'Tennessee': 'TN',\n",
" 'Texas': 'TX',\n",
" 'Utah': 'UT',\n",
" 'Vermont': 'VT',\n",
" 'Virginia': 'VA',\n",
" 'Washington': 'WA',\n",
" 'West Virginia': 'WV',\n",
" 'Wisconsin': 'WI',\n",
" 'Wyoming': 'WY',\n",
"}\n",
"\n",
"us_state_names = {v: k for k,v in us_state_abbrev.iteritems()}"
]
},
{
"cell_type": "code",
"execution_count": 101,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"{'AK': 'Alaska',\n",
" 'AL': 'Alabama',\n",
" 'AR': 'Arkansas',\n",
" 'AZ': 'Arizona',\n",
" 'CA': 'California',\n",
" 'CO': 'Colorado',\n",
" 'CT': 'Connecticut',\n",
" 'DC': 'District of Columbia',\n",
" 'DE': 'Delaware',\n",
" 'FL': 'Florida',\n",
" 'GA': 'Georgia',\n",
" 'HI': 'Hawaii',\n",
" 'IA': 'Iowa',\n",
" 'ID': 'Idaho',\n",
" 'IL': 'Illinois',\n",
" 'IN': 'Indiana',\n",
" 'KS': 'Kansas',\n",
" 'KY': 'Kentucky',\n",
" 'LA': 'Louisiana',\n",
" 'MA': 'Massachusetts',\n",
" 'MD': 'Maryland',\n",
" 'ME': 'Maine',\n",
" 'MI': 'Michigan',\n",
" 'MN': 'Minnesota',\n",
" 'MO': 'Missouri',\n",
" 'MS': 'Mississippi',\n",
" 'MT': 'Montana',\n",
" 'NC': 'North Carolina',\n",
" 'ND': 'North Dakota',\n",
" 'NE': 'Nebraska',\n",
" 'NH': 'New Hampshire',\n",
" 'NJ': 'New Jersey',\n",
" 'NM': 'New Mexico',\n",
" 'NV': 'Nevada',\n",
" 'NY': 'New York',\n",
" 'OH': 'Ohio',\n",
" 'OK': 'Oklahoma',\n",
" 'OR': 'Oregon',\n",
" 'PA': 'Pennsylvania',\n",
" 'RI': 'Rhode Island',\n",
" 'SC': 'South Carolina',\n",
" 'SD': 'South Dakota',\n",
" 'TN': 'Tennessee',\n",
" 'TX': 'Texas',\n",
" 'UT': 'Utah',\n",
" 'VA': 'Virginia',\n",
" 'VT': 'Vermont',\n",
" 'WA': 'Washington',\n",
" 'WI': 'Wisconsin',\n",
" 'WV': 'West Virginia',\n",
" 'WY': 'Wyoming'}"
]
},
"execution_count": 101,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"us_state_names"
]
},
{
"cell_type": "code",
"execution_count": 93,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{'State': 'AK', 'freq': {'high': 191.0, 'low': 5.0, 'mid': 31.0}}\n",
"{'State': 'AL', 'freq': {'high': 460.0, 'low': 3.0, 'mid': 22.0}}\n",
"{'State': 'AR', 'freq': {'high': 333.0, 'low': 3.0, 'mid': 19.0}}\n",
"{'State': 'AZ', 'freq': {'high': 286.0, 'low': 5.0, 'mid': 30.0}}\n",
"{'State': 'CA', 'freq': {'high': 929.0, 'low': 7.0, 'mid': 49.0}}\n",
"{'State': 'CO', 'freq': {'high': 290.0, 'low': 5.0, 'mid': 30.0}}\n",
"{'State': 'CT', 'freq': {'high': 254.0, 'low': 4.0, 'mid': 23.0}}\n",
"{'State': 'DC', 'freq': {'high': 254.0, 'low': 6.0, 'mid': 28.0}}\n",
"{'State': 'DE', 'freq': {'high': 140.0, 'low': 9.0, 'mid': 20.0}}\n",
"{'State': 'FL', 'freq': {'high': 399.0, 'low': 5.0, 'mid': 35.0}}\n",
"{'State': 'GA', 'freq': {'high': 342.0, 'low': 4.0, 'mid': 22.0}}\n",
"{'State': 'HI', 'freq': {'high': 200.0, 'low': 8.0, 'mid': 25.0}}\n",
"{'State': 'IA', 'freq': {'high': 133.0, 'low': 6.0, 'mid': 18.0}}\n",
"{'State': 'ID', 'freq': {'high': 157.0, 'low': 6.0, 'mid': 19.0}}\n",
"{'State': 'IL', 'freq': {'high': 303.0, 'low': 4.0, 'mid': 26.0}}\n",
"{'State': 'IN', 'freq': {'high': 226.0, 'low': 5.0, 'mid': 21.0}}\n",
"{'State': 'KS', 'freq': {'high': 282.0, 'low': 5.0, 'mid': 24.0}}\n",
"{'State': 'KY', 'freq': {'high': 239.0, 'low': 4.0, 'mid': 18.0}}\n",
"{'State': 'LA', 'freq': {'high': 342.0, 'low': 3.0, 'mid': 24.0}}\n",
"{'State': 'MA', 'freq': {'high': 258.0, 'low': 4.0, 'mid': 14.0}}\n",
"{'State': 'MD', 'freq': {'high': 101.0, 'low': 3.0, 'mid': 10.0}}\n",
"{'State': 'ME', 'freq': {'high': 110.0, 'low': 6.0, 'mid': 16.0}}\n",
"{'State': 'MI', 'freq': {'high': 203.0, 'low': 4.0, 'mid': 18.0}}\n",
"{'State': 'MN', 'freq': {'high': 243.0, 'low': 6.0, 'mid': 20.0}}\n",
"{'State': 'MO', 'freq': {'high': 234.0, 'low': 4.0, 'mid': 23.0}}\n",
"{'State': 'MS', 'freq': {'high': 350.0, 'low': 3.0, 'mid': 22.0}}\n",
"{'State': 'MT', 'freq': {'high': 109.0, 'low': 6.0, 'mid': 16.0}}\n",
"{'State': 'NC', 'freq': {'high': 206.0, 'low': 5.0, 'mid': 18.0}}\n",
"{'State': 'ND', 'freq': {'high': 104.0, 'low': 5.0, 'mid': 15.0}}\n",
"{'State': 'NE', 'freq': {'high': 354.0, 'low': 7.0, 'mid': 23.0}}\n",
"{'State': 'NH', 'freq': {'high': 163.0, 'low': 8.0, 'mid': 20.0}}\n",
"{'State': 'NJ', 'freq': {'high': 603.0, 'low': 10.0, 'mid': 53.0}}\n",
"{'State': 'NM', 'freq': {'high': 201.0, 'low': 4.0, 'mid': 23.0}}\n",
"{'State': 'NV', 'freq': {'high': 401.0, 'low': 11.0, 'mid': 43.0}}\n",
"{'State': 'NY', 'freq': {'high': 517.0, 'low': 3.0, 'mid': 23.0}}\n",
"{'State': 'OH', 'freq': {'high': 229.0, 'low': 4.0, 'mid': 21.0}}\n",
"{'State': 'OK', 'freq': {'high': 297.0, 'low': 3.0, 'mid': 21.0}}\n",
"{'State': 'OR', 'freq': {'high': 212.0, 'low': 7.0, 'mid': 20.0}}\n",
"{'State': 'PA', 'freq': {'high': 614.0, 'low': 4.0, 'mid': 27.0}}\n",
"{'State': 'RI', 'freq': {'high': 169.0, 'low': 6.0, 'mid': 22.0}}\n",
"{'State': 'SC', 'freq': {'high': 343.0, 'low': 6.0, 'mid': 26.0}}\n",
"{'State': 'SD', 'freq': {'high': 196.0, 'low': 6.0, 'mid': 21.0}}\n",
"{'State': 'TN', 'freq': {'high': 287.0, 'low': 4.0, 'mid': 21.0}}\n",
"{'State': 'TX', 'freq': {'high': 481.0, 'low': 2.0, 'mid': 31.0}}\n",
"{'State': 'UT', 'freq': {'high': 140.0, 'low': 6.0, 'mid': 19.0}}\n",
"{'State': 'VA', 'freq': {'high': 398.0, 'low': 6.0, 'mid': 20.0}}\n",
"{'State': 'VT', 'freq': {'high': 94.0, 'low': 7.0, 'mid': 15.0}}\n",
"{'State': 'WA', 'freq': {'high': 223.0, 'low': 6.0, 'mid': 25.0}}\n",
"{'State': 'WI', 'freq': {'high': 243.0, 'low': 5.0, 'mid': 19.0}}\n",
"{'State': 'WV', 'freq': {'high': 131.0, 'low': 4.0, 'mid': 14.0}}\n",
"{'State': 'WY', 'freq': {'high': 138.0, 'low': 9.0, 'mid': 20.0}}\n"
]
}
],
"source": [
"\n",
"for row in joined.iterrows():\n",
" state = row[1][\"Provider State\"]\n",
" mincov = round(row[1][\"min_average_covered_charges\"] / 1000.)\n",
" maxcov = round(row[1][\"max_average_covered_charges\"] / 1000.)\n",
" medcov = round(row[1][\"med_average_covered_charges\"] / 1000.)\n",
" item = {\"State\": state, \"freq\": { \"low\": mincov, \"mid\": medcov, \"high\": maxcov } }\n",
" print item"
]
},
{
"cell_type": "code",
"execution_count": 90,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"5.25\n"
]
}
],
"source": [
"s = 5.2543254325\n",
"print round(s, 2)"
]
},
{
"cell_type": "code",
"execution_count": 107,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"joined.to_csv('health.csv', index=False)"
]
},
{
"cell_type": "code",
"execution_count": 108,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"Index([u'provider_state', u'min_average_covered_charges',\n",
" u'max_average_covered_charges', u'med_average_covered_charges'],\n",
" dtype='object')"
]
},
"execution_count": 108,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"joined.columns"
]
},
{
"cell_type": "code",
"execution_count": 109,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x108691710>"
]
},
"execution_count": 109,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAacAAAEACAYAAAAX9rnOAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xl4FeX1wPHvISwiBAFBEnZlUVBURDYVCSKIVEFEgWAF\n0RZci+IC+rMVtCpQF4pbaV1RgboXRBAEI9paFkVEMQKWKIYdAdnJcn5/vJNwE7Jcwp3Mzc35PM88\nd2buLGcu5J4777yLqCrGGGNMNKkQdADGGGNMfpacjDHGRB1LTsYYY6KOJSdjjDFRx5KTMcaYqGPJ\nyRhjTNTxNTmJSC8RSRWRNSIyupBtJnvvrxCRtsXtKyK1RWS+iKwWkXkiUtNb30NElonI195rt5B9\nUrxjLfemOn5etzHGmGPjW3ISkTjgaaAX0BpIFpFW+bbpDTRX1RbAcOC5MPYdA8xX1ZbAAm8ZYCtw\nmaqeCQwFXg05lQKDVbWtN22L+AUbY4yJGD/vnDoAa1U1TVUzgBlA33zb9AFeAVDVxUBNEUkoZt/c\nfbzXK7z9v1LVTd76VUBVEakUci6J6NUZY4zxjZ/JqQGwPmT5Z29dONvUL2Lfeqq62ZvfDNQr4Nz9\ngS+8xJbjFa9I7/6jugpjjDGlzs/kFG6/SOHc0UhBx1PX91Ke9SJyOjAeGBGy+hpVPQPoAnQRkWvD\njM0YY0wAKvp47HSgUchyI9wdUFHbNPS2qVTA+nRvfrOIJKjqJhFJBLbkbCQiDYF3gGtVdV3OelXd\n4L3uEZFpuGLD0GdSiIh1MmiMMSWgqhF/bOLnndMyoIWINBWRysBAYGa+bWYCQwBEpBOw0yuyK2rf\nmbgKD3iv73n71wRmA6NV9fOcE4hIXE7tPO8Z1OXAyoICVtWomx544IHAY7CYLKbyGJfFFN7kF9/u\nnFQ1U0RuBT4E4oAXVPU7ERnhvT9FVT8Qkd4ishbYCwwral/v0OOBN0TkBiANGOCtvxVoBjwgIg94\n63oA+4G5XmKKA+YD//Druo0xxhw7P4v1UNU5wJx866bkW7413H299b8AFxew/s/AnwsJ5dwwQzbG\nGBMFrIeIKJeUlBR0CEewmMJjMYUvGuOymIIlfpYZliUiovZZGGPM0RER1IcKEb4W6xlzrESs7bQx\n0aI0f8BbcjJRz+5ojQleaf9QtGdOxhhjoo4lJ2OMMVHHkpMxxpioY8nJGB/99NNPxMfH23OzGFOh\nQgX+97//lWjftLQ0KlSoQHZ2doSjii1WIcIYHzVu3Jjdu3cHHYYxZY7dORljAMjMzAw6hEBkZWUF\nHUKJxfK/mSUnY0qgadOmPPbYY5x55pnEx8dzww03sHnzZi699FJOOOEEevTowc6dO48owklKSuJP\nf/oTF1xwATVq1OCSSy5h+/btxZ7v6quvJjExkZo1a9K1a1dWrVoFwOLFi0lMTMxTbPjuu+9y1lln\nAZCdnc348eNp3rw5derUYeDAgezYsQM4XLz04osv0qRJEy6++OIizwWwfft2Lr/8ck444QQ6dOjA\n/fffT5cuXXLfT01NpUePHpx44omcdtppvPnmm8Ve2/79+7nzzjtp2rQpNWvWpEuXLhw4cACAmTNn\ncvrpp1OrVi26detGamoqABMmTODqq6/Oc5yRI0cycuRIAHbt2sUNN9xA/fr1adiwIX/84x9z/w1e\nfvllzj//fEaNGkWdOnUYN24chw4d4q677qJJkyYkJCRw00035cYA8Je//CX3WC+++GKx11TYdR08\neDD3/ddee40mTZpQt25dHnnkkdz1S5YsoXPnztSqVYv69etz2223kZFxeGi6ChUq8Oyzz9KiRQtO\nPfVUACZOnJgb3/PPP5+n2PHgwYOFXtu2bdu47LLLqFWrFieeeCIXXnhh9BRBB92jbbRM7qMw0SZa\n/12aNm2qnTt31i1btmh6erqedNJJ2rZtW/3qq6/0wIEDetFFF+m4ceN03bp1KiKalZWlqqpdu3bV\n5s2b65o1a3T//v2alJSkY8aMKfZ8L730ku7Zs0cPHTqkt99+u5599tm57zVr1kznz5+fu3zVVVfp\nhAkTVFV10qRJ2rlzZ01PT9dDhw7piBEjNDk5WVU1N7ahQ4fqvn379MCBA8Wea+DAgZqcnKz79+/X\nVatWaaNGjbRLly6qqrpnzx5t2LChvvzyy5qVlaXLly/XOnXq6KpVq4q8tptvvlm7deumGzZs0Kys\nLP3888/14MGD+v3332u1atX0o48+0szMTJ04caI2b95cMzIyNC0tTY8//njdvXu3qqpmZmZqYmKi\nLl68WFVVr7jiCr3xxht13759umXLFu3QoYNOmTIl9/oqVqyoTz/9tGZlZen+/fv19ttv1759++qO\nHTt09+7devnll+u9996rqqpz5szRevXq6bfffqt79+7V5ORkFRH94YcfSnRdOZ/78OHD9cCBA7pi\n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\nAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10f9f7c10>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"joined[['min_average_covered_charges']].plot(kind='density')"
]
},
{
"cell_type": "code",
"execution_count": 110,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x10b2049d0>"
]
},
"execution_count": 110,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nnq3t27fX7OxsLSgo0AceeEDPP//8Ut/b3r17NTk5WR999FE9dOiQ7tu3TxcvXqyqqr/73e+0d+/e\numPHDt2xY4eef/75+rvf/U5VVf/whz/oT3/608LtvPHGG9qpUydVVd20aZOeeuqp+uabb6qq6sKF\nC/XUU0/VnTt3qqpqv379tE2bNpqVlaUFBQW6e/dubd26tU6dOlULCgp06dKl2rRpU83KylJV1WHD\nhumwYcP0u+++0xUrVmirVq30ggsuOOH3NW7cOK1bt66++eabeuTIEb3nnnu0V69ehW1nzZqlW7Zs\nUVXVV155RU8++WTdunWrqqo+//zzWrNmTX3iiSe0oKBADx48qMOGDdMRI0bowYMHNSsrS1NSUgrj\n279/f8T3tmrVKlVVTU5O1g8//FBVVXfv3q2fffZZie+ppL9NXx677+pY7izRHvH6BVvdlPVzgMp5\nHK+2bdvq9OnTC18PHTpUx44dW/j6r3/9qw4ZMuSYdt9++62KiO7du7ew7JFHHtEzzzxTmzRpojk5\nOccdy1/+8he9+uqrVVX1yJEjmpqaqu+//76qqj777LPav39/VVVdtGiRpqamFmn74IMP6o033qiq\n7gu3X79+5d7XtGnTjklcKSkphYkuPT29cFlVtaCgQOvXr68bNmwocfvTp0/Xc889N+K6M844ozBZ\nqarOnz9f27Ztq6qqa9as0QYNGujBgwdVVfW6667T+++/X1VVJ06cqCNHjiyyrcsuu0ynTZumqqpp\naWk6bty4wnUzZsw4JnGNGTNGJ0yYoPn5+VqrVi398ssvC9fde++92rdv3xLfU1nva9y4cTpgwIDC\n1ytXrtR69eqVuK2uXbsW/jPy/PPPF/mZhuJbvXp1Ydl9991XGF9p701VNTU1VSdPnqx79uwp9f2o\nxk+is65Lk/AqK9WdiObNmxcu16tXr8jrunXrsn//fo4cOcLdd99N+/btadSoEe3atUNE2LlzZ2Hd\n66+/ng0bNjBw4EDOOOOMMve7evVqBg0aRIsWLWjUqBG//e1v+eabbwDXDTZ8+HBefvllAKZPn85P\nf/pTANavX8/mzZtp3Lhx4eOhhx5i+/bthdtu3bp1ufe1efPmY+qHv16/fj2/+tWvCvd16qmnApCb\nG+neyM7GjRs5/fTTI67bvHkzbdq0KXydmprK5s2bAWjfvj0dO3Zk7ty5fPfdd7z++utcd911hXHM\n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\nJqH9f0jDH4XvyvrrAAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10b210890>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"joined[['max_average_covered_charges']].plot(kind='density')"
]
},
{
"cell_type": "code",
"execution_count": 111,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x11129b1d0>"
]
},
"execution_count": 111,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nvcQZZ5wBwNGjR7nvvvvo2rUrrVu3ZsyYMezbtw/4vnnp8ccfJy0tjQsvvDDkuQC++uorLrvsMk48\n8UT69OnD3Xffzfnnnx/Yn5OTw5AhQ2jVqhWnnHIKzz33XLXXdujQIe666y46depE8+bNOf/88zl8\n+DAAmZmZ9OzZkxYtWjBo0CBycnIAmD17NldffXW549x+++3cfvvtAHzzzTfceOONpKam0r59e37z\nm98EmtGeeOIJzjvvPO68805at27NrFmzOHLkCL/4xS9IS0sjOTmZn/3sZ4EyAPzpT38KHOvxxx8P\n55+s0uv67rvvxy54+umnSUtLo02bNtx7772B7WvWrKF///60aNGC1NRUbr31VoqD5lipU6cOjzzy\nCOnp6Zx88skA3H///YHy/fOf/yzX7Pjdd99VeW179+7l0ksvpUWLFrRq1Yof//jH0fPMV1VDfoCN\n7s/HgIvd5fXV5Yu1j3MrjN+i9d+hU6dO2r9/f929e7cWFBToSSedpL1799aPP/5YDx8+rIMHD9ZZ\ns2bp9u3btVWrVrp06VJVVV2+fLm2atVK9+7dq6qq/fr107vuukuPHDmiq1at0qZNm+qECROqPf+8\nefP0wIEDeuTIEb3jjju0V69egX1dunTR5cuXB9avuuoqnT17tqqqPvjgg9q/f38tKCjQI0eO6OTJ\nk3XcuHGqqrp161YVEZ04caIWFRXp4cOHqz3XmDFjdNy4cXro0CHNzs7WDh066Pnnn6+qqgcOHND2\n7dvrE088oaWlpbpu3Tpt3bq1Zmdnh7y2KVOm6KBBg3THjh1aWlqq7733nn733Xf62WefaePGjfWN\nN97QkpISvf/++7Vr165aXFys+fn5esIJJ+j+/ftVVbWkpERTUlJ09erVqqo6atQovfnmm7WoqEh3\n796tffr00UcffTRwfUlJSfrwww9raWmpHjp0SO+44w4dOXKk7tu3T/fv36+XXXaZTp8+XVVVly5d\nqm3bttWNGzfqwYMHddy4cSoiumXLlmO6rrL7PmnSJD18+LCuX79eGzRooDk5Oaqq+uGHH+rq1au1\ntLRU8/PztXv37vrggw8GjisiOnToUN23b58ePnxYly5dqsnJyZqdna1FRUV6zTXXlCtfqGubNm2a\n3nzzzVpSUqIlJSX6zjvvVHk9Vf3fdLdH/m9ytQmcsetygI+B+sBJwGovCuPnJ1r/KCaa6v4dIDKf\n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\nMSbq/H/PPRlNchPGlQAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1112b0990>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"joined[['med_average_covered_charges']].plot(kind='density')"
]
},
{
"cell_type": "code",
"execution_count": 121,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x10b81c510>"
]
},
"execution_count": 121,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZ0AAAEACAYAAABoJ6s/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAFaNJREFUeJzt3X+QXeV93/H3BwkMAmKF/BA/A6QRKZraMchGbmPqdUuw\nmmCg0w4/WlPiaOpmlI6dtBNbctoCnSnFnkldmAw4iRMjnICtBJvCmGIJyrZ0OkYEQyNbFgLbgmht\nFmo7NsGuK5lv/zhH7I28K11Je8/Vvft+zdzRc5/z4z7nkbSfPc95zrmpKiRJ6sJRw26AJGnhMHQk\nSZ0xdCRJnTF0JEmdMXQkSZ0xdCRJnRl46CTZmeTPkzyRZEtbd1KSzUl2JNmUZGnP+uuTPJ1ke5KL\ne+pXJtnaLrt50O2WJM2/Ls50CpioqvOq6oK2bh2wuarOAR5q35NkBXAlsAJYDdyaJO02twFrqmo5\nsDzJ6g7aLkmaR10Nr2Wf95cCG9ryBuDytnwZcFdV7a6qncAzwKokpwAnVtWWdr07eraRJI2Irs50\nHkzyZ0n+eVu3rKqm2/I0sKwtnwrs6tl2F3DaLPVTbb0kaYQs7uAzfr6qvp7kJ4DNSbb3LqyqSuKz\neCRpARh46FTV19s/X0zyaeACYDrJyVX1fDt09kK7+hRwRs/mp9Oc4Uy15d76qX0/y/CSpINXVfte\nAhmYgQ6vJVmS5MS2fDxwMbAVuBe4tl3tWuCetnwvcFWSY5KcDSwHtlTV88B3kqxqJxZc07PNX1NV\nC/513XXXDb0NR8rLvrAv7Iv9v7o26DOdZcCn2wloi4E/rqpNSf4M2JhkDbATuAKgqrYl2QhsA/YA\na2umV9YCtwPHAfdX1QMDbrskaZ4NNHSq6qvAG2ap/yZw0Rzb3AjcOEv948Dr5ruNkqTu+ESCMTQx\nMTHsJhwx7IsZ9sUM+2J4MowxvUFJUuN0PJI0aEmocZlIIElSL0NHktQZQ0eS1BlDR5LUmS4eg3NE\nmnl49dyclCBJ82vBhk5jf6HS2WQOSVowHF6TJHXG0JEkdcbQkSR1xtCRJHXG0JEkdcbQkSR1xtCR\nJHXG0JEkdcbQkSR1xtCRJHXG0JEkdcbQkSR1xtCRJHXG0JEkdcbQkSR1xtCRJHXG0JEkdcbQkSR1\nxtCRJHXG0JEkdcbQkSR1xtCRJHXG0JEkdcbQkSR1xtCRJHXG0JEkdcbQkSR1xtCRJHVm4KGTZFGS\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x111ea54d0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sub.loc[sub[\"Provider State\"]=='CA']['Average Covered Charges'].plot(kind='hist', bins=35)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"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.11"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
<!DOCTYPE html>
<meta charset="utf-8">
<style>
h2.title {
color: black;
text-align: center;
}
.categories {
fill: none;
stroke: #fff;
stroke-linejoin: round;
}
.categories-choropleth {
fill: #ccc;
}
#tooltip-container {
position: absolute;
background-color: #fff;
color: #000;
padding: 10px;
border: 1px solid;
display: none;
}
#canvas svg {
border: 0px;
}
.tooltip_key {
font-weight: bold;
}
.tooltip_value {
margin-left: 20px;
float: right;
}
.x-axis {
fill: #000;
}
.chart {
background: #fff;
margin: 5px;
}
.chart .category-bar {
stroke: white;
fill: steelblue;
}
.chart text.name {
fill: #000;
}
.chart line {
stroke: #c1c1c1;
}
.chart .rule {
fill: #000;
}
.main-category-text {
fill: #FF4A4A;
}
.main-category-bar {
stroke: #FF4A4A;
stroke-width: 2px;
}
path { stroke: #fff; }
path:hover { opacity:0.9; }
rect:hover { fill:steelblue; }
.axis { font: 10px sans-serif; }
.legend tr{ border-bottom:1px solid grey; }
.legend tr:first-child{ border-top:1px solid grey; }
.axis path,
.axis line {
fill: none;
stroke: #000;
shape-rendering: crispEdges;
}
.x.axis path { display: none; }
.legend{
margin-bottom:76px;
display:inline-block;
border-collapse: collapse;
border-spacing: 0px;
}
.legend td{
padding:4px 5px;
vertical-align:bottom;
}
.legendFreq, .legendPerc{
align:right;
width:50px;
}
</style>
<body><h2 text="Healthcare Average Covered Charges (in thousands of dollars)" class="title"></h2></body>
<body id="dashboard"></body>
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.12/d3.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.6/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/topojson/1.6.20/topojson.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript">
d3.select("body")
.append("h2")
.text("Healthcare Average Covered Charges (in thousands of dollars)")
.attr('class', 'title');
function dashboard(id, fData){
var width = 1060, height = 500;
var barColor = 'lightblue';
function segColor(c){ return {low:"#84d561", mid:"#e9916c",high:"#bc7fd1"}[c]; }
// compute total for each state.
fData.forEach(function(d){d.total=d.freq.low+d.freq.mid+d.freq.high;});
// function to handle histogram.
function histoGram(fD){
var hG={}, hGDim = {t: 60, r: 0, b: 30, l: 0};
hGDim.w = 500 - hGDim.l - hGDim.r,
hGDim.h = 300 - hGDim.t - hGDim.b;
//create svg for histogram.
var hGsvg = d3.select(id).append("svg")
.attr("width", hGDim.w + hGDim.l + hGDim.r)
.attr("height", hGDim.h + hGDim.t + hGDim.b).append("g")
.attr("transform", "translate(" + hGDim.l + "," + hGDim.t + ")");
// create function for x-axis mapping.
var x = d3.scale.ordinal().rangeRoundBands([0, hGDim.w], 0.1)
.domain(fD.map(function(d) { return d[0]; }));
// Add x-axis to the histogram svg.
hGsvg.append("g").attr("class", "x axis")
.attr("transform", "translate(0," + hGDim.h + ")")
.call(d3.svg.axis().scale(x).orient("bottom"));
// Create function for y-axis map.
var y = d3.scale.linear().range([hGDim.h, 0])
.domain([0, d3.max(fD, function(d) { return d[1]; })]);
// Create bars for histogram to contain rectangles and freq labels.
var bars = hGsvg.selectAll(".bar").data(fD).enter()
.append("g").attr("class", "bar");
//create the rectangles.
bars.append("rect")
.attr("x", function(d) { return x(d[0]); })
.attr("y", function(d) { return y(d[1]); })
.attr("width", x.rangeBand())
.attr("height", function(d) { return hGDim.h - y(d[1]); })
.attr('fill',barColor)
.on("mouseover",mouseover)// mouseover is defined below.
.on("mouseout",mouseout);// mouseout is defined below.
//Create the frequency labels above the rectangles.
bars.append("text").text(function(d){ return d3.format(",")(d[1])})
.attr("x", function(d) { return x(d[0])+x.rangeBand()/2; })
.attr("y", function(d) { return y(d[1])-5; })
.attr("text-anchor", "middle");
function mouseover(d){ // utility function to be called on mouseover.
// filter for selected state.
var st = fData.filter(function(s){ return s.State == d[0];})[0],
nD = d3.keys(st.freq).map(function(s){ return {type:s, freq:st.freq[s]};});
// call update functions of pie-chart and legend.
pC.update(nD);
leg.update(nD);
}
function mouseout(d){ // utility function to be called on mouseout.
// reset the pie-chart and legend.
pC.update(tF);
leg.update(tF);
}
// create function to update the bars. This will be used by pie-chart.
hG.update = function(nD, color){
// update the domain of the y-axis map to reflect change in frequencies.
y.domain([0, d3.max(nD, function(d) { return d[1]; })]);
// Attach the new data to the bars.
var bars = hGsvg.selectAll(".bar").data(nD);
// transition the height and color of rectangles.
bars.select("rect").transition().duration(500)
.attr("y", function(d) {return y(d[1]); })
.attr("height", function(d) { return hGDim.h - y(d[1]); })
.attr("fill", color);
// transition the frequency labels location and change value.
bars.select("text").transition().duration(500)
.text(function(d){ return d3.format(",")(d[1])})
.attr("y", function(d) {return y(d[1])-5; });
}
return hG;
}
// function to handle pieChart.
function pieChart(pD){
var pC ={}, pieDim ={w:250, h: 250};
pieDim.r = Math.min(pieDim.w, pieDim.h) / 2;
// create svg for pie chart.
var piesvg = d3.select(id).append("svg")
.attr("width", pieDim.w).attr("height", pieDim.h).append("g")
.attr("transform", "translate("+pieDim.w/2+","+pieDim.h/2+")");
// create function to draw the arcs of the pie slices.
var arc = d3.svg.arc().outerRadius(pieDim.r - 10).innerRadius(0);
// create a function to compute the pie slice angles.
var pie = d3.layout.pie().sort(null).value(function(d) { return d.freq; });
// Draw the pie slices.
piesvg.selectAll("path").data(pie(pD)).enter().append("path").attr("d", arc)
.each(function(d) { this._current = d; })
.style("fill", function(d) { return segColor(d.data.type); })
.on("mouseover",mouseover).on("mouseout",mouseout);
// create function to update pie-chart. This will be used by histogram.
pC.update = function(nD){
piesvg.selectAll("path").data(pie(nD)).transition().duration(500)
.attrTween("d", arcTween);
}
// Utility function to be called on mouseover a pie slice.
function mouseover(d){
// call the update function of histogram with new data.
hG.update(fData.map(function(v){
return [v.State,v.freq[d.data.type]];}),segColor(d.data.type));
}
//Utility function to be called on mouseout a pie slice.
function mouseout(d){
// call the update function of histogram with all data.
hG.update(fData.map(function(v){
return [v.State,v.total];}), barColor);
}
// Animating the pie-slice requiring a custom function which specifies
// how the intermediate paths should be drawn.
function arcTween(a) {
var i = d3.interpolate(this._current, a);
this._current = i(0);
return function(t) { return arc(i(t)); };
}
return pC;
}
// function to handle legend.
function legend(lD){
var leg = {};
// create table for legend.
var legend = d3.select(id).append("table").attr('class','legend');
// create one row per segment.
var tr = legend.append("tbody").selectAll("tr").data(lD).enter().append("tr");
// create the first column for each segment.
tr.append("td").append("svg").attr("width", '16').attr("height", '16').append("rect")
.attr("width", '16').attr("height", '16')
.attr("fill",function(d){ return segColor(d.type); });
// create the second column for each segment.
tr.append("td").text(function(d){ return d.type;});
// create the third column for each segment.
tr.append("td").attr("class",'legendFreq')
.text(function(d) { return d3.format(",")(d.freq); });
// create the fourth column for each segment.
tr.append("td").attr("class",'legendPerc')
.text(function(d){ return getLegend(d,lD);});
// Utility function to be used to update the legend.
leg.update = function(nD){
// update the data attached to the row elements.
var l = legend.select("tbody").selectAll("tr").data(nD);
// update the frequencies.
l.select(".legendFreq").text(function(d){ return d3.format(",")(d.freq);});
// update the percentage column.
l.select(".legendPerc").text(function(d){ return getLegend(d,nD);});
}
function getLegend(d,aD){ // Utility function to compute percentage.
return d3.format("%")(d.freq/d3.sum(aD.map(function(v){ return v.freq; })));
}
return leg;
}
// calculate total frequency by segment for all state.
var tF = ['low','mid','high'].map(function(d) {
return {type:d, freq: d3.sum(fData.map(function(t) { return t.freq[d]; }))};
});
// calculate total frequency by state for all segment.
var sF = fData.map(function(d){return [d.State, d.total];});
var hG = histoGram(sF), // create the histogram.
pC = pieChart(tF), // create the pie-chart.
leg= legend(tF); // create the legend.
};
function draw(data) {
// "use strict";
// console.log(data)
var WIDTH = 800, HEIGHT = 400;
var COLOR_COUNTS = 9;
var SCALE = 0.7;
var config = {
"main_category": "Washington",
"avg_category": "Nation Average",
"color1": '#c3e2ff',
"color2": '#08306B',
"stateDataColumn": "provider_state",
"valueDataColumn": "med_average_covered_charges"
};
var MAIN_CATEGORY = config.mainCategory;
var AVG_CATEGORY = config.averageCategory;
function Interpolate(start, end, steps, count) {
var s = start,
e = end,
final = s + (((e - s) / steps) * count);
return Math.floor(final);
};
function Color(_r, _g, _b) {
var r, g, b;
var setColors = function(_r, _g, _b) {
r = _r;
g = _g;
b = _b;
};
setColors(_r, _g, _b);
this.getColors = function() {
var colors = {
r: r,
g: g,
b: b
};
return colors;
};
};
function hexToRgb(hex) {
var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
return result ? {
r: parseInt(result[1], 16),
g: parseInt(result[2], 16),
b: parseInt(result[3], 16)
} : null;
};
var COLOR_FIRST = config.color1, COLOR_LAST = config.color2;
var rgb = hexToRgb(COLOR_FIRST);
var COLOR_START = new Color(rgb.r, rgb.g, rgb.b);
rgb = hexToRgb(COLOR_LAST);
var COLOR_END = new Color(rgb.r, rgb.g, rgb.b);
var MAP_CATEGORY = config.stateDataColumn;
var MAP_VALUE = config.valueDataColumn;
var width = WIDTH,
height = HEIGHT;
var valueById = d3.map();
var startColors = COLOR_START.getColors(),
endColors = COLOR_END.getColors();
var colors = [];
for (var i = 0; i < COLOR_COUNTS; i++) {
var r = Interpolate(startColors.r, endColors.r, COLOR_COUNTS, i);
var g = Interpolate(startColors.g, endColors.g, COLOR_COUNTS, i);
var b = Interpolate(startColors.b, endColors.b, COLOR_COUNTS, i);
colors.push(new Color(r, g, b));
};
var quantize = d3.scale.quantize()
.domain([0, 1.0])
.range(d3.range(COLOR_COUNTS).map(function(i) { return i }));
var path = d3.geo.path();
var svg = d3.select("#canvas-svg").append("svg")
.attr("width", width)
.attr("height", height);
d3.tsv("https://s3-us-west-2.amazonaws.com/vida-public/geo/us-state-names.tsv", function(error, names) {
// console.log(names);
name_id_map = {};
id_name_map = {};
for (var i = 0; i < names.length; i++) {
name_id_map[names[i].name] = names[i].id;
id_name_map[names[i].id] = names[i].name;
};
console.log(name_id_map);
console.log(id_name_map);
data.forEach(function(d) {
var id = name_id_map[d[MAP_CATEGORY]];
valueById.set(id, +d[MAP_VALUE]);
});
quantize.domain([d3.min(data, function(d){ return +d[MAP_VALUE] }),
d3.max(data, function(d){ return +d[MAP_VALUE] })]);
function makeMap(us) {
svg.append("g")
.attr("class", "categories-choropleth")
.selectAll("path")
.data(topojson.feature(us, us.objects.states).features)
.enter().append("path")
.attr("transform", "scale(" + SCALE + ")")
.style("fill", function(d) {
if (valueById.get(d.id)) {
var i = quantize(valueById.get(d.id));
var color = colors[i].getColors();
return "rgb(" + color.r + "," + color.g +
"," + color.b + ")";
} else {
return "";
}
})
.attr("d", path)
.on("mousemove", function(d) {
console.log(d);
var html = "";
html += "<div class=\"tooltip_kv\">";
html += "<span class=\"tooltip_key\">";
html += id_name_map[d.id];
html += "</span>";
html += "<span class=\"tooltip_value\">";
html += (valueById.get(d.id) ? (Math.round(+valueById.get(d.id) / 10.) / 100) : "");
html += "";
html += "</span>";
html += "</div>";
$("#tooltip-container").html(html);
$(this).attr("fill-opacity", "0.8");
$("#tooltip-container").show(); console.log(html);
var coordinates = d3.mouse(this);
var map_width = $('.categories-choropleth')[0].getBoundingClientRect().width;
if (d3.event.layerX < map_width / 2) {
d3.select("#tooltip-container")
.style("top", (d3.event.layerY + 15) + "px")
.style("left", (d3.event.layerX + 15) + "px");
} else {
var tooltip_width = $("#tooltip-container").width();
d3.select("#tooltip-container")
.style("top", (d3.event.layerY + 15) + "px")
.style("left", (d3.event.layerX - tooltip_width - 30) + "px");
}
})
.on("mouseout", function() {
$(this).attr("fill-opacity", "1.0");
$("#tooltip-container").hide();
});
svg.append("path")
.datum(topojson.mesh(us, us.objects.states, function(a, b) { return a !== b; }))
.attr("class", "categories")
.attr("transform", "scale(" + SCALE + ")")
.attr("d", path);
};
d3.json("https://s3-us-west-2.amazonaws.com/vida-public/geo/us.json", function(error, us) {
makeMap(us);
});
});
};
d3.csv("https://raw.githubusercontent.com/KirkHunter/KirkHunter.github.io/master/health.csv", draw);
var freqData=[
{'State': 'AK', 'freq': {'high': 191.0, 'low': 5.0, 'mid': 31.0}},
{'State': 'AL', 'freq': {'high': 460.0, 'low': 3.0, 'mid': 22.0}},
{'State': 'CT', 'freq': {'high': 254.0, 'low': 4.0, 'mid': 23.0}},
{'State': 'DE', 'freq': {'high': 140.0, 'low': 9.0, 'mid': 20.0}},
{'State': 'GA', 'freq': {'high': 342.0, 'low': 4.0, 'mid': 22.0}},
{'State': 'IN', 'freq': {'high': 226.0, 'low': 5.0, 'mid': 21.0}},
{'State': 'LA', 'freq': {'high': 342.0, 'low': 3.0, 'mid': 24.0}},
{'State': 'MD', 'freq': {'high': 101.0, 'low': 3.0, 'mid': 10.0}},
{'State': 'MO', 'freq': {'high': 234.0, 'low': 4.0, 'mid': 23.0}},
{'State': 'MS', 'freq': {'high': 350.0, 'low': 3.0, 'mid': 22.0}},
{'State': 'ND', 'freq': {'high': 104.0, 'low': 5.0, 'mid': 15.0}},
{'State': 'NE', 'freq': {'high': 354.0, 'low': 7.0, 'mid': 23.0}},
{'State': 'NV', 'freq': {'high': 401.0, 'low': 11.0, 'mid': 43.0}},
{'State': 'PA', 'freq': {'high': 614.0, 'low': 4.0, 'mid': 27.0}},
{'State': 'SD', 'freq': {'high': 196.0, 'low': 6.0, 'mid': 21.0}},
{'State': 'VT', 'freq': {'high': 94.0, 'low': 7.0, 'mid': 15.0}},
{'State': 'WI', 'freq': {'high': 243.0, 'low': 5.0, 'mid': 19.0}}
];
dashboard('#dashboard',freqData);
</script>
<body>
<div id="tooltip-container"></div>
<div id="canvas-svg"></div>
</body>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment