Example #1
0
def df_to_table(df, incl_vars, categorical, nonnormal, groupvar, pval, labels,
                order, missing):

    df_cols = list(df)

    # this is the list of columns for which Table 1 is generated
    col_list = [df_col for df_col in incl_vars]

    my_table = TableOne(df,
                        columns=col_list,
                        groupby=groupvar,
                        nonnormal=nonnormal,
                        categorical=categorical,
                        pval=pval,
                        missing=missing,
                        label_suffix=True,
                        rename=labels,
                        order=order)

    my_table_html = my_table.to_html(
        classes=["table", "table-dark", 'table-sm'])

    return my_table_html
Example #2
0
data = pd.read_csv('./data/20210602-134857-completed/dataset.csv')

# ------------------------
# Create tableone
# ------------------------
# Columns
columns = ['age', 'gender', 'haematocrit_percent', 'plt']

# Categorical
categorical = ['gender']

# Groupby
groupby = ['cvs_hos_split']

#
mytable = TableOne(data, columns, categorical, groupby)

########################################################
# Show
#

mytable.tableone

########################################################
# Show (HTML)
#
# Html
html = mytable.to_html()

# show
print(html)
Example #3
0
    MYCATEGORICAL = set()
    for name, mytype in zip(data.dtypes.index, data.dtypes.values):
        if mytype == object:
            MYCATEGORICAL.add(name)
    for c in categorical:
        MYCATEGORICAL.add(c)
    MYCATEGORICAL = list(MYCATEGORICAL) if len(MYCATEGORICAL) > 0 else None
    # create grouped_table with p values
    # API: https://tableone.readthedocs.io/en/latest/tableone.html
    # Example: https://github.com/tompollard/tableone/blob/master/tableone.ipynb
    grouped_table = TableOne(data,
                             categorical=MYCATEGORICAL,
                             groupby=group,
                             nonnormal=nonnormal,
                             label_suffix=True,
                             pval=pval)
    print(grouped_table)

    if outfile:
        if outFMT == 'csv':
            grouped_table.to_csv(outfile)
        elif outFMT == 'latex':
            grouped_table.to_latex(outfile)
        elif outFMT == 'html':
            grouped_table.to_html(outfile)

sys.stdout.flush()
sys.stdout.close()
sys.stderr.flush()
sys.stderr.close()
Example #4
0
def data_dash2(request, doc_id  ):
    doc=get_object_or_404(Document, id=doc_id)  

    #########################################################################
    WARN_MESSAGE=dataCheck(doc_id)
    if WARN_MESSAGE[2] == 'EMPTY' :	
    
       df = pd.read_csv('figures/static/tmpdata/'+doc.domain+'.csv',encoding="iso-8859-1")
       df_raw = df    
       df = df.rename(columns=lambda x: x.upper()) 
  
       ##########################Data for Pie plot#############################  
       df_a=df.groupby(['RACE']).count()
       bar_all=df_a['USUBJID'].values.tolist()
	
	   ##########################Data for Bar Chart#############################
       df_f=df[(df.SEX == "F")].groupby(['RACE']).count()
       df_m=df[(df.SEX == "M")].groupby(['RACE']).count()

       bar_male=df_m['USUBJID'].values.tolist()
       bar_female=df_f['USUBJID'].values.tolist()

       df['RACE']=df['RACE'].str.split(" ", n = 1, expand = True) 
       bar_labels = mark_safe(df.RACE.unique().tolist())
    

       ###Height and Weight are available then we calculate BMI
       if WARN_MESSAGE[1] == '' :
          df['BMIBL'] = df[WARN_MESSAGE[4]] / ((df[WARN_MESSAGE[3]]/100)**2)
		
       WV={}
       age_f0 = [] 
       age_m0 = []  
       bgcolor_arm = ['rgba(46, 204, 113, 0.4)','rgba(252, 185, 65, 0.4)','rgba(129, 207, 224, 0.4)','rgba(255, 99, 132, 0.4)','yellow']	
       bocolor_arm = ['rgba(46, 204, 113, 1)','rgba(252, 185, 65, 1)','rgba(129, 207, 224, 1)','rgba(255, 99, 132, 1)','rgba(245, 230, 83, 1)']	
       if "ARMCD" not in list(df) :
           df['ARMCD'] = df['ARM']
       armcd=df.ARMCD.unique().tolist()
       arml=df.ARM.unique().tolist()
       for num,val in  enumerate(armcd, start=1):
           age_f0.append(df[(df.SEX == "F") & (df.ARMCD == val)]['AGE'].values.tolist() )
           age_m0.append(df[(df.SEX == "M") & (df.ARMCD == val)]['AGE'].values.tolist() )
           if num == 1 :
              df.loc[df['ARMCD'] == val, 'ARM'] = mark_safe('<span class="label label-success">' + arml[num-1] + '</span>')
           if num == 2 :
              df.loc[df['ARMCD'] == val, 'ARM'] = mark_safe('<span class="label label-warning">' + arml[num-1] + '</span>')
           if num == 3 :
              df.loc[df['ARMCD'] == val, 'ARM'] = mark_safe('<span class="label label-info">' + arml[num-1] + '</span>')
           if num == 4 :
              df.loc[df['ARMCD'] == val, 'ARM'] = mark_safe('<span class="label label-danger">' + arml[num-1] + '</span>')
				
	   	###Height and Weight are available
           if WARN_MESSAGE[1] == '' :   
              dftmp=df[(df['ARMCD'] == val)]
              dftmp['BMIBL']=dftmp['BMIBL']/3			
              WTMP = dftmp[[WARN_MESSAGE[3],WARN_MESSAGE[4],'BMIBL']].to_json(orient='records').replace('"','').replace(WARN_MESSAGE[3],"y").replace('BMIBL',"r").replace(WARN_MESSAGE[4],"x")
              WTMP_ =mark_safe( "label: ['"+ val +"'],data:" + WTMP + ",backgroundColor: '"+bgcolor_arm[num-1]+"',borderColor:  '"+bocolor_arm[num-1] +"', borderWidth: 1" ) 
			
              WV['line_dict_{}'.format(num)] = WTMP_
            		
       age_f=age_f0
       age_m=age_m0
       box_labels = mark_safe(armcd)
       listing=df[["USUBJID", "SITEID", "ARM", "AGE", "SEX"] ].values.tolist()

###Demographic tableone
       columns = ['AGE','SEX','RACE','ARM']
       categorical = ['SEX','RACE']
       groupby = ['ARM']
  
       mytable = TableOne(df, columns, categorical, groupby,isnull=False,)
       mytablej = mark_safe(mytable.to_html(classes='stripe row-border order-column').replace('&lt;','<').replace('&gt;','>').replace('<table border="1" class="dataframe stripe row-border order-column">','<table class="table no-margin">'))
	
       if WARN_MESSAGE[0] == '' :
          FLAG_ = flag_var(doc_id) 
          flag1=FLAG_[0]
          flag2=FLAG_[1]
          c_flag1= df_f=df[(df[flag1] == "Y")]['USUBJID'].count()	
          c_flag2= df_f=df[(df[flag2] == "Y")]['USUBJID'].count()
          p_flag1=100*c_flag1/df['USUBJID'].count()
          p_flag2=100*c_flag2/df['USUBJID'].count()
 		
       return render(request, 'figures/data_dash2.html', { 'document':doc,'bar_all':bar_all,'bar_male':bar_male, 'bar_female':bar_female, 'bar_labels':bar_labels,'box_labels':box_labels,'age_f':age_f,'age_m':age_m,'listing':listing[:10] ,'WARN_MESSAGE':WARN_MESSAGE,'FLAG1':flag1,'FLAG2':flag2,'C_FLAG1':c_flag1,'C_FLAG2':c_flag2,'P_FLAG1':p_flag1,'P_FLAG2':p_flag2,'WV':WV,'mytable' : mytablej} )   
    
    else :
	
        return render(request, 'figures/CDISC_ERROR.html', { 'document':doc, 'CDISC_ERROR' :WARN_MESSAGE[2] } )