Notebook #2: Digging into participation, utilization, cost, and quality

This notebook...

  • looks at which CMS programs the cardiologist participates in
  • brings in data from CMS Aggregate Utilization and Cost data for CY2014
  • starts to compare the 8 given cardiologists to the population of 5,480 CA cardiologists we have Medicare data on
In [98]:
import pandas as pd
import numpy as np

pd.set_option('display.max_columns', None)

# Let's load the cardiologist file again
given_cardiologists = pd.read_csv("data/given_cardiologists_plus_national_downloadable_file.csv")

cms_program_cols = ['Participating in eRx',
                    'Participating in PQRS',
                    'Participating in EHR',
                    'Received PQRS Maintenance of Certification Program Incentive',
                    'Participated in Million Hearts']

given_cardiologists.replace(np.nan, "NULL", inplace=True)
given_cardiologists.groupby(cms_program_cols).size()
Out[98]:
Participating in eRx  Participating in PQRS  Participating in EHR  Received PQRS Maintenance of Certification Program Incentive  Participated in Million Hearts
NULL                  NULL                   NULL                  NULL                                                          NULL                              2
                      Y                      Y                     NULL                                                          NULL                              6
dtype: int64

Analysis of CMS program participation

  • We can see that none of the cardiologists are participating in eRX, Million Hearts, or have received the PQRS incentive.
  • 6 of the 8 physicians are participating in both PQRS and EHR incentive program -- we may want to prioritize these six
In [2]:
# Let's now look at the aggregate provider utilizationd data from CMS (source #3 in README.md)
all_provider_agg_util = pd.read_csv("data/data.cms.gov_4a3h-46r6_CY2015-Aggregate-Utilization.csv", low_memory=False)
In [105]:
# and join in the all_provider_agg_util data with given_cardiologist data into a new dataframe
given_cardiologists_plus_agg_util = pd.merge(given_cardiologists, all_provider_agg_util, how='left', left_on='npi', right_on='National Provider Identifier', suffixes=('_ndf','_agg'))
# write this merge to the file system for safe keeping
given_cardiologists_plus_agg_util.to_csv("data/given_cardiologists_plus_agg_util.csv")


# we may want to look at all cardiologists' aggregate information so let's bring in the original source #1 dataset and join it with this one as well
all_providers = pd.read_csv("data/data.medicare.gov_s63f-csi6_National-Downloadable_File.csv", low_memory=False)
all_cardiologists = all_providers[all_providers['Primary specialty'] == 'CARDIOVASCULAR DISEASE (CARDIOLOGY)']
all_cardiologists_in_ca = all_cardiologists[all_cardiologists['State'] == 'CA']
all_cardiologists_in_ca_plus_agg_util = pd.merge(all_cardiologists_in_ca, all_provider_agg_util, how='left', left_on='npi', right_on='National Provider Identifier', suffixes=('_ndf','_agg'))
In [83]:
# So what data do we have to work with now?
given_cardiologists_plus_agg_util
Out[83]:
npi PAC ID Professional Enrollment ID Last Name First Name Middle Name Suffix Gender Credential Medical school name Graduation year Primary specialty Secondary specialty 1 Secondary specialty 2 Secondary specialty 3 Secondary specialty 4 All secondary specialties Organization legal name Organization DBA name Group Practice PAC ID Number of Group Practice members Line 1 Street Address Line 2 Street Address Marker of address line 2 suppression City State Zip Code Claims based hospital affiliation CCN 1 Claims based hospital affiliation LBN 1 Claims based hospital affiliation CCN 2 Claims based hospital affiliation LBN 2 Claims based hospital affiliation CCN 3 Claims based hospital affiliation LBN 3 Claims based hospital affiliation CCN 4 Claims based hospital affiliation LBN 4 Claims based hospital affiliation CCN 5 Claims based hospital affiliation LBN 5 Professional accepts Medicare Assignment Participating in eRx Participating in PQRS Participating in EHR Received PQRS Maintenance of Certification Program Incentive Participated in Million Hearts National Provider Identifier Last Name/Organization Name of the Provider First Name of the Provider Middle Initial of the Provider Credentials of the Provider Gender of the Provider Entity Type of the Provider Street Address 1 of the Provider Street Address 2 of the Provider City of the Provider Zip Code of the Provider State Code of the Provider Country Code of the Provider Provider Type of the Provider Medicare Participation Indicator Number of HCPCS Number of Services Number of Medicare Beneficiaries Total Submitted Charge Amount Total Medicare Allowed Amount Total Medicare Payment Amount Total Medicare Standardized Payment Amount Drug Suppress Indicator Number of HCPCS Associated With Drug Services Number of Drug Services Number of Medicare Beneficiaries With Drug Services Total Drug Submitted Charge Amount Total Drug Medicare Allowed Amount Total Drug Medicare Payment Amount Total Drug Medicare Standardized Payment Amount Medical Suppress Indicator Number of HCPCS Associated With Medical Services Number of Medical Services Number of Medicare Beneficiaries With Medical Services Total Medical Submitted Charge Amount Total Medical Medicare Allowed Amount Total Medical Medicare Payment Amount Total Medical Medicare Standardized Payment Amount Average Age of Beneficiaries Number of Beneficiaries Age Less 65 Number of Beneficiaries Age 65 to 74 Number of Beneficiaries Age 75 to 84 Number of Beneficiaries Age Greater 84 Number of Female Beneficiaries Number of Male Beneficiaries Number of Non-Hispanic White Beneficiaries Number of Black or African American Beneficiaries Number of Asian Pacific Islander Beneficiaries Number of Hispanic Beneficiaries Number of American Indian/Alaska Native Beneficiaries Number of Beneficiaries With Race Not Elsewhere Classified Number of Beneficiaries With Medicare Only Entitlement Number of Beneficiaries With Medicare & Medicaid Entitlement Percent (%) of Beneficiaries Identified With Atrial Fibrillation Percent (%) of Beneficiaries Identified With Alzheimer’s Disease or Dementia Percent (%) of Beneficiaries Identified With Asthma Percent (%) of Beneficiaries Identified With Cancer Percent (%) of Beneficiaries Identified With Heart Failure Percent (%) of Beneficiaries Identified With Chronic Kidney Disease Percent (%) of Beneficiaries Identified With Chronic Obstructive Pulmonary Disease Percent (%) of Beneficiaries Identified With Depression Percent (%) of Beneficiaries Identified With Diabetes Percent (%) of Beneficiaries Identified With Hyperlipidemia Percent (%) of Beneficiaries Identified With Hypertension Percent (%) of Beneficiaries Identified With Ischemic Heart Disease Percent (%) of Beneficiaries Identified With Osteoporosis Percent (%) of Beneficiaries Identified With Rheumatoid Arthritis / Osteoarthritis Percent (%) of Beneficiaries Identified With Schizophrenia / Other Psychotic Disorders Percent (%) of Beneficiaries Identified With Stroke Average HCC Risk Score of Beneficiaries
0 1184787020 6.002875e+09 I20041006000639 KUMAR ANIL NULL NULL M MD OTHER 1977.0 CARDIOVASCULAR DISEASE (CARDIOLOGY) NULL NULL NULL NULL NULL KUMAR MEDICAL CORPORATION NULL 1.456389e+09 2.0 44215 15TH W ST SUITE 215 N LANCASTER CA 93534.0 50056.0 ANTELOPE VALLEY HOSPITAL DISTRICT 50204 LANCASTER HOSPITAL CORPORATION 51333 RIDGECREST REGIONAL HOSPITAL NULL NULL NULL NULL Y NULL Y Y NULL NULL 1184787020 KUMAR ANIL NaN NaN M I 44215 15TH ST W SUITE 215 LANCASTER 935344014 CA US Cardiology Y 88 12593.0 2274 2124265.16 1083048.40 819039.53 755562.09 NaN 3.0 497.0 235.0 4299.08 604.52 471.91 471.91 NaN 85.0 12096.0 2274.0 2119966.08 1082443.88 818567.62 755090.18 72 473.0 787.0 711.0 303.0 1269.0 1005.0 1263.0 432.0 86.0 450.0 NaN NaN 1228.0 1046.0 17.0 16.0 14.0 11.0 41.0 41.0 39.0 24.0 53.0 66.0 75.0 65.0 11.0 49.0 7.0 12.0 2.1222
1 1477612752 5.193784e+09 I20041006000364 GILL KANWALJIT S NULL M MD OTHER 1990.0 CARDIOVASCULAR DISEASE (CARDIOLOGY) INTERNAL MEDICINE PERIPHERAL VASCULAR DISEASE NULL NULL INTERNAL MEDICINE, PERIPHERAL VASCULAR DISEASE KANWALJIT S. GILL MD INC NULL 8.729247e+09 1.0 38656 MEDICAL CTR DR A NULL N PALMDALE CA 935514483.0 50204.0 LANCASTER HOSPITAL CORPORATION 50056 ANTELOPE VALLEY HOSPITAL DISTRICT 51333 RIDGECREST REGIONAL HOSPITAL NULL NULL NULL NULL Y NULL Y Y NULL NULL 1477612752 GILL KANWALJIT S MD M I 38656 MEDICAL CENTER DRIVE SUITE A PALMDALE 93551 CA US Cardiology Y 96 7498.0 1855 1072273.00 645088.80 492869.32 471072.83 NaN 6.0 1284.0 102.0 33340.00 11253.55 8825.95 8825.95 NaN 90.0 6214.0 1853.0 1038933.00 633835.25 484043.37 462246.88 72 405.0 644.0 548.0 258.0 1028.0 827.0 1142.0 300.0 73.0 314.0 NaN NaN 1058.0 797.0 17.0 17.0 14.0 10.0 45.0 44.0 36.0 24.0 52.0 69.0 75.0 63.0 10.0 51.0 7.0 12.0 2.2935
2 1952460248 6.483407e+08 I20080603000419 KHANAL SANJAYA NULL NULL M NULL OTHER 1991.0 CARDIOVASCULAR DISEASE (CARDIOLOGY) CARDIAC SURGERY NULL NULL NULL CARDIAC SURGERY ANTELOPE VALLEY CARDIOLOGY ASSOCIATES NULL 7.416055e+09 4.0 43723 20TH ST W NULL N LANCASTER CA 935344763.0 50056.0 ANTELOPE VALLEY HOSPITAL DISTRICT 50204 LANCASTER HOSPITAL CORPORATION 51333 RIDGECREST REGIONAL HOSPITAL NULL NULL NULL NULL Y NULL Y Y NULL NULL 1952460248 KHANAL SANJAYA NaN MD M I 43807 N 10TH ST WEST SUITE F LANCASTER 93534 CA US Cardiology Y 91 6167.0 1347 1194343.00 491828.50 371113.86 349615.01 NaN 3.0 2468.0 144.0 42311.00 19027.85 14919.55 14919.55 NaN 88.0 3699.0 1347.0 1152032.00 472800.65 356194.31 334695.46 72 280.0 491.0 404.0 172.0 722.0 625.0 832.0 207.0 49.0 239.0 NaN NaN 759.0 588.0 18.0 19.0 16.0 11.0 46.0 46.0 43.0 29.0 57.0 73.0 75.0 74.0 11.0 58.0 8.0 16.0 2.3065
3 1114980703 3.779470e+09 I20040301001181 ALTURJUMAN AHMAD MOUTAZ NULL M MD OTHER 1989.0 CARDIOVASCULAR DISEASE (CARDIOLOGY) CRITICAL CARE (INTENSIVISTS) INTERNAL MEDICINE NULL NULL CRITICAL CARE (INTENSIVISTS), INTERNAL MEDICINE BLACKSTONE MEDICAL CORP. NULL 5.991726e+09 2.0 4500 BROCKTON AVE SUITE 305 N RIVERSIDE CA 925014027.0 50022.0 RIVERSIDE HEALTHCARE SYSTEM, L.P. 50770 LOMA LINDA UNIVERSITY MEDICAL CENTER MURRIETA 50775 TEMECULA VALLEY HOSPITAL, INC. 50102 PARKVIEW COMMUNITY HOSPITAL MEDICAL CENTER 50327 SEVENTH DAY ADVENTISTS LOMA LINDA UNIVERSITY M... Y NULL Y Y NULL NULL 1114980703 ALTURJUMAN AHMAD NaN M.D. M I 4500 BROCKTON AVE NaN RIVERSIDE 925014090 CA US Cardiology Y 94 6458.0 1030 1732247.00 530223.99 400437.80 388564.23 NaN 2.0 2562.0 78.0 62680.00 12303.84 9646.20 9646.20 NaN 92.0 3896.0 1030.0 1669567.00 517920.15 390791.60 378918.03 74 141.0 397.0 321.0 171.0 591.0 439.0 587.0 100.0 44.0 270.0 NaN NaN 583.0 447.0 22.0 18.0 11.0 11.0 55.0 41.0 28.0 23.0 50.0 70.0 75.0 75.0 9.0 41.0 5.0 13.0 2.0265
4 1215918800 9.234126e+09 I20070823000730 SHENKMAN HEATHER J NULL F MD ALBANY MEDICAL COLLEGE OF UNION UNIVERSITY 1999.0 CARDIOVASCULAR DISEASE (CARDIOLOGY) INTERNAL MEDICINE NULL NULL NULL INTERNAL MEDICINE LAKESIDE MEDICAL ASSOCIATES, A MEDICAL GROUP, ... NULL 1.951202e+09 2.0 7345 MEDICAL CTR DR SUITE 500 N WEST HILLS CA 913071964.0 50235.0 PROVIDENCE HEALTH SYSTEM-SOUTHERN CALIFORNIA 50761 PROVIDENCE HEALTH SYSTEM-SOUTHERN CALIFORNIA 50278 PROVIDENCE HEALTH SYSTEM - SOUTHERN CALIFORNIA NULL NULL NULL NULL M NULL NULL NULL NULL NULL 1215918800 SHENKMAN HEATHER J M.D. F I 7325 MEDICAL CENTER DR SUITE 300 WEST HILLS 913071925 CA US Cardiology Y 30 499.0 255 126213.86 50570.65 37976.14 35403.57 * NaN NaN NaN NaN NaN NaN NaN # NaN NaN NaN NaN NaN NaN NaN 77 18.0 94.0 68.0 75.0 116.0 139.0 201.0 NaN 11.0 30.0 NaN NaN 166.0 89.0 38.0 24.0 13.0 14.0 58.0 47.0 30.0 33.0 47.0 74.0 75.0 75.0 11.0 46.0 7.0 16.0 2.2654
5 1255334769 3.678470e+09 I20080307000417 ON ROGER C NULL M NULL TUFTS UNIVERSITY SCHOOL OF MEDICINE 1978.0 CARDIOVASCULAR DISEASE (CARDIOLOGY) NULL NULL NULL NULL NULL LAKESIDE MEDICAL ORGANIZATION, A MEDICAL GROUP... NULL 7.618005e+09 100.0 191 S BUENA VISTA SUITE 440 N BURBANK CA 915054554.0 50235.0 PROVIDENCE HEALTH SYSTEM-SOUTHERN CALIFORNIA 50278 PROVIDENCE HEALTH SYSTEM - SOUTHERN CALIFORNIA 50761 PROVIDENCE HEALTH SYSTEM-SOUTHERN CALIFORNIA NULL NULL NULL NULL Y NULL Y Y NULL NULL 1255334769 ON ROGER C M.D. M I 191 S BUENA VISTA ST STE 400 BURBANK 915054554 CA US Cardiology Y 35 908.0 333 156434.52 89911.22 66399.56 60943.32 * NaN NaN NaN NaN NaN NaN NaN # NaN NaN NaN NaN NaN NaN NaN 78 15.0 115.0 107.0 96.0 166.0 167.0 277.0 NaN 15.0 24.0 0.0 NaN 262.0 71.0 27.0 16.0 10.0 14.0 35.0 44.0 20.0 21.0 31.0 75.0 75.0 57.0 10.0 46.0 4.0 9.0 1.6168
6 1891765574 3.274586e+09 I20050211000931 GUPTA VINOD K NULL M MD UNIVERSITY OF CALIFORNIA, SAN FRANCISCO SCHOOL... 1966.0 CARDIOVASCULAR DISEASE (CARDIOLOGY) NULL NULL NULL NULL NULL HEART CENTER OF SOUTHERN CALIFORNIA INC NULL 8.820040e+09 1.0 2876 N SYCAMORE DR NULL N SIMI VALLEY CA 930651550.0 50236.0 SIMI VALLEY HOSPITAL & HEALTH CARE SERVICES NULL NULL NULL NULL NULL NULL NULL NULL M NULL Y Y NULL NULL 1891765574 GUPTA VINOD K M.D. M I 2876 SYCAMORE DR NaN SIMI VALLEY 930651550 CA US Cardiology Y 18 4723.0 205 511145.88 249300.54 188086.11 176705.68 NaN 2.0 3239.0 73.0 23557.88 8768.47 6877.35 6877.35 NaN 16.0 1484.0 205.0 487588.00 240532.07 181208.76 169828.33 74 22.0 83.0 62.0 38.0 98.0 107.0 129.0 NaN 20.0 45.0 0.0 NaN 124.0 81.0 19.0 11.0 10.0 5.0 27.0 22.0 8.0 15.0 37.0 75.0 75.0 75.0 11.0 34.0 NaN 7.0 1.1640
7 1851401822 6.800077e+09 I20110218000225 SILVA AUGUSTO NULL NULL M NULL OTHER 1967.0 CARDIOVASCULAR DISEASE (CARDIOLOGY) NULL NULL NULL NULL NULL LAKESIDE MEDICAL ORGANIZATION, A MEDICAL GROUP... NULL 7.618005e+09 100.0 191 S BUENA VISTA ST SUITE 400 N BURBANK CA 915054543.0 50235.0 PROVIDENCE HEALTH SYSTEM-SOUTHERN CALIFORNIA NULL NULL NULL NULL NULL NULL NULL NULL Y NULL NULL NULL NULL NULL 1851401822 SILVA AUGUSTO NaN M.D. M I 2601 W ALAMEDA AVE NaN BURBANK 915054800 CA US Cardiology Y 35 1802.0 509 331223.34 155159.63 115930.25 106481.89 NaN 3.0 205.0 40.0 9440.00 3947.54 3094.76 3094.76 NaN 32.0 1597.0 509.0 321783.34 151212.09 112835.49 103387.13 77 30.0 173.0 178.0 128.0 240.0 269.0 389.0 NaN 22.0 78.0 0.0 NaN 374.0 135.0 29.0 21.0 13.0 16.0 35.0 33.0 20.0 21.0 37.0 69.0 75.0 65.0 14.0 50.0 5.0 14.0 1.8477

Analysis of given cardiologists and all CA cardiologists

In [102]:
# How many CA cardiologists can we compare these 8 with?
print "There are {0} cardiologists in CA that we will compare these {1} with".format(len(all_cardiologists_in_ca_plus_agg_util), len(given_cardiologists_plus_agg_util))
There are 5480 cardiologists in CA that we will compare these 8 with
In [81]:
# We will use plotly for interactive charting and visual analytics
import plotly.plotly as py
import plotly.graph_objs as go
from plotly import tools

# helper method for creating hover over tooltips/labels
def list_of_provider_labels(df):
    labels = []
    for n, provider in df.iterrows():
        labels.append("NPI: {0}<br />Name: {1}, {2}".format(provider['npi'], provider['Last Name'], provider['First Name']))
    return labels

# given one df, this produces a two-column layout: [boxplot | scatterplot]
## Example usage:
## fig = plotly_box_and_scatter_plot(given_cardiologists_plus_agg_util, 'Graduation year')
## py.iplot(fig)
def plotly_box_and_scatter_plot(df, column_to_graph):
    data = [
        go.Box(
            name = column_to_graph,
            y = df[column_to_graph],
            boxmean = True
        ),
        go.Scatter(
            x = np.full(len(df), 0),
            y = df[column_to_graph].tolist(),
            mode = 'markers',
            text = list_of_provider_labels(df) #df['npi'].tolist(),
        )
    ]
    layout = go.Layout(
        showlegend=False,
        hovermode='closest',
        title="{0}".format(column_to_graph)
    )
    fig = go.Figure(data=data, layout=layout)
    return fig

# given two dfs, this produces a two-column layout: [given boxplot | given scatterplot | all boxplot | all scatterplot]
## Example usage:
## fig = plotly_compare_distribution_of_column(
##     column_to_graph = 'Percent (%) of Beneficiaries Identified With Ischemic Heart Disease ',
##     given_name = 'Nearby Cardios', given_df = given_cardiologists_plus_agg_util,
##     all_name = 'All CA Cardios', all_df = all_cardiologists_in_ca_plus_agg_util
##     y_min = 0, y_min = 100 # these are optional!
##     )
## py.iplot(fig)
def plotly_compare_distribution_of_column(column_to_graph, given_df, given_name, all_df, all_name, y_min=None, y_max=None):
    given_box = go.Box(
        name = given_name,
        y = given_df[column_to_graph],
        boxmean = True
    )
    given_scatter = go.Scatter(
        name = given_name,
        x = np.full(len(given_df), 0),
        y = given_df[column_to_graph].tolist(),
        mode = 'markers',
        text = list_of_provider_labels(given_df)
    )

    all_box = go.Box(
        name = all_name,
        y = all_df[column_to_graph],
        boxmean = True
    )
    all_scatter = go.Scatter(
        name = all_name,
        x = np.full(len(all_df), 0),
        y = all_df[column_to_graph].tolist(),
        mode = 'markers',
        text = list_of_provider_labels(all_df)
    )

    fig = tools.make_subplots(rows=1, cols=4)

    fig.append_trace(given_box, 1, 1)
    fig.append_trace(given_scatter, 1, 2)
    fig.append_trace(all_box, 1, 3)
    fig.append_trace(all_scatter, 1, 4)

    fig['layout'].update(title=column_to_graph, showlegend=True, hovermode='closest')
    fig['layout']['xaxis2'].update(title=given_name, type='category',  ticks='', showticklabels=False)
    fig['layout']['xaxis4'].update(title=all_name, type='category', ticks='', showticklabels=False)

    # if y_min and y_max are non-None, set all axes to the specified min and max
    if y_min != None and y_max != None:
        y_axis_layout = dict(range = [y_min, y_max], autorange = False)
        fig['layout']['yaxis1'].update(y_axis_layout)
        fig['layout']['yaxis2'].update(y_axis_layout)
        fig['layout']['yaxis3'].update(y_axis_layout)
        fig['layout']['yaxis4'].update(y_axis_layout)
    
    return fig
In [99]:
fig = plotly_box_and_scatter_plot(given_cardiologists_plus_agg_util, 'Percent (%) of Beneficiaries Identified With Heart Failure ')
py.iplot(fig)
Out[99]:
In [79]:
fig = plotly_compare_distribution_of_column(
    column_to_graph = 'Percent (%) of Beneficiaries Identified With Heart Failure ',
    given_name = 'Nearby Cardios', given_df = given_cardiologists_plus_agg_util,
    all_name = 'All CA Cardios', all_df = all_cardiologists_in_ca_plus_agg_util)
py.iplot(fig)
This is the format of your plot grid:
[ (1,1) x1,y1 ]  [ (1,2) x2,y2 ]  [ (1,3) x3,y3 ]  [ (1,4) x4,y4 ]

Out[79]:
In [106]:
fig1 = plotly_compare_distribution_of_column(
    column_to_graph = 'Percent (%) of Beneficiaries Identified With Heart Failure ',
    given_name = 'Nearby Cardios', given_df = given_cardiologists_plus_agg_util,
    all_name = 'All CA Cardios', all_df = all_cardiologists_in_ca_plus_agg_util,
    y_min = 0, y_max = 100)

fig2 = plotly_compare_distribution_of_column(
    column_to_graph = 'Percent (%) of Beneficiaries Identified With Ischemic Heart Disease ',
    given_name = 'Nearby Cardios', given_df = given_cardiologists_plus_agg_util,
    all_name = 'All CA Cardios', all_df = all_cardiologists_in_ca_plus_agg_util,
    y_min = 0, y_max = 100)

display(py.iplot(fig1))
display(py.iplot(fig2))
This is the format of your plot grid:
[ (1,1) x1,y1 ]  [ (1,2) x2,y2 ]  [ (1,3) x3,y3 ]  [ (1,4) x4,y4 ]

This is the format of your plot grid:
[ (1,1) x1,y1 ]  [ (1,2) x2,y2 ]  [ (1,3) x3,y3 ]  [ (1,4) x4,y4 ]

In [101]:
from IPython.display import display

# let's chart a bunch more interesting columns
columns_to_chart = ['Number of HCPCS', 
                    'Number of Services',
                    'Number of Medicare Beneficiaries',
                    'Number of Medical Services',
                    'Average Age of Beneficiaries',
                    'Average HCC Risk Score of Beneficiaries ',
                    'Number of Beneficiaries With Medicare & Medicaid Entitlement']

for column in columns_to_chart:
    fig = plotly_compare_distribution_of_column(
        column_to_graph = column,
        given_name = 'Nearby Cardios', given_df = given_cardiologists_plus_agg_util,
        all_name = 'All CA Cardios', all_df = all_cardiologists_in_ca_plus_agg_util)
    display(py.iplot(fig))
This is the format of your plot grid:
[ (1,1) x1,y1 ]  [ (1,2) x2,y2 ]  [ (1,3) x3,y3 ]  [ (1,4) x4,y4 ]

This is the format of your plot grid:
[ (1,1) x1,y1 ]  [ (1,2) x2,y2 ]  [ (1,3) x3,y3 ]  [ (1,4) x4,y4 ]

This is the format of your plot grid:
[ (1,1) x1,y1 ]  [ (1,2) x2,y2 ]  [ (1,3) x3,y3 ]  [ (1,4) x4,y4 ]

This is the format of your plot grid:
[ (1,1) x1,y1 ]  [ (1,2) x2,y2 ]  [ (1,3) x3,y3 ]  [ (1,4) x4,y4 ]

This is the format of your plot grid:
[ (1,1) x1,y1 ]  [ (1,2) x2,y2 ]  [ (1,3) x3,y3 ]  [ (1,4) x4,y4 ]

This is the format of your plot grid:
[ (1,1) x1,y1 ]  [ (1,2) x2,y2 ]  [ (1,3) x3,y3 ]  [ (1,4) x4,y4 ]

This is the format of your plot grid:
[ (1,1) x1,y1 ]  [ (1,2) x2,y2 ]  [ (1,3) x3,y3 ]  [ (1,4) x4,y4 ]

In [ ]:
 
In [ ]: