numeric_converter.py 3.77 KB
Newer Older
Alberto Blázquez Herranz's avatar
Alberto Blázquez Herranz committed
1 2 3 4 5 6 7 8 9
# -*- coding: utf-8 -*-
"""
Created on Wed Nov 10 11:52:54 2021

@author: ctb
"""

import pandas as pd
import sys
10
'''
Alberto Blázquez Herranz's avatar
Alberto Blázquez Herranz committed
11 12 13 14 15
datafile_path = sys.argv[1]
csv_separator = ","

if len(sys.argv) == 3:
    csv_separator = sys.argv[2]
16
'''
Alberto Blázquez Herranz's avatar
Alberto Blázquez Herranz committed
17 18 19 20 21
categorical_variables = ["DMRGENDR", "DMRBORN", "DMRRETH1", "DMROCCU", "DMRHREDU", "DSXOS", "DSXHO", "DSXIC", "TRXAV","TRXRIB","TRXLR","TRXRM","TRXIA","TRXIB","TRXCH","TRXAB","TRXCS","TRXHEP","TRXAF","TRXCP","TRXOT","TRXECM","TRXIV","TRXNIV","TRXNO","TRXOX","TRXRR","TRXTR","TRXVA","TRXPE","TRXPV","TRXIT","TRXNMB","TRXAC","TRXINA","TRXIS","TRXIM","TRXVC","TRXVD","TRXZN",
                         "CSXCOT","CSXCTR","SMXASAH","SMXFEA","SMXCOA","SMXSTA","SMXSBA","SMXRNA","SMXMYA","SMXARA","SMXCPA","SMXAPA","SMXINA","SMXNAA","SMXDIA","SMXFAA","SMXHEA","SMXCNA","SMXACA","SMXSLA","SMXTLA","SMXSYA","SMXWHA","SMXLYA","SMXANA","SMXIWA","SMXSRA","SMXBLA","CMXPRG","CMXCVD","CMXCMP","CMXHT","CMXDI","CMXCKD","CMXCLD","CMXCPD","CMXASM","CMXCND","CMXRHE","CMXCCI","CMXCBD","CMXDE","CMXPU","CMXST","CMXLY","CMXAP","RFXSM","RFXFSM","RFXOB","RFXTB","RFXIMD","RFXHIV","RFXAIDS","RFXUI","RFXHC","RFXONC","RFXMN",
                         "HMRACI","HMRARB","HMRAHO","HMRNS","HMROS","HMRCS","HMRIS","HMRAV","HMRAB","HMRCOV","IMDXCT","IMDXCTCR","IMDXCTTE","IMDXCTAB","IMDXXR","IMDXPN",
                         "COXRD","COXAR","COXPM","COXMOD","COXPT","COXEC","COXSH","COXIO","COXPE","COXST","COXDIC","COXRIO","COXKF","COXHF","COXBC"]

22 23
numeric_variables = ["DMRAGEYR","DMXHT","DMXWT","DMXBMI","DATLGT","DATLGTI","DATSSDHn","CSXBTPA","CSXBTPHn","CSXOSTA","CSXOSTHn","CSXCHRA","CSXCHRHn","CSXRRA","CSXRRHn","CSXRRI","CSXSYA","CSXSYHn","CSXDIA","CSXDIHn","SMTFE","SMTCO","SMTST","SMTSB","SMXSEA","DATIMD","IMDXCTLD","IMDXEQ","DATLBDHn","LBXHGBA","LBXHGBHn","LBXESRA","LBXESRHn","LBXWBCSIA","LBXWBCSIHn","LBXLYMNOA","LBXLYMNOHn","LBXNENOA","LBXNENOHn","LBXHCTA","LBXHCTHn","LBXPLTSIA","LBXPLTSIHn","LBXGHA","LBXGHHn","LBXAPTTA","LBXAPTTHn","LBXAPTRA","LBXAPTRHn","LBXPTA","LBXPRHn","LBXINRA","LBXINRHn","LBXSATSIA","LBXSATSIHn","LBXSTBA","LBXSTBHn","LBXSCBA","LBXSCBHn","LBXSUBA","LBXSUBHn","LBXSASSIA","LBXSASSIHn","LBXSGLA","LBXSGLHn","LBXSBUA","LBXSBUHn","LBXSBLA","LBXSBLHn","LBXSCRA","LBXSCRHn","LBXSNASIA","LBXSNASIHn","LBXSCLSIA","LBXSCLSIHn","LBXSKSIA","LBXSKSIHn","LBXSPCA","LBXSPCHn","LBXCRPA","LBXCRPHn","LBXSLDSIA","LBXSLDSIHn","LBXCTRA","LBXCTRHn","LBXCDDA","LBXCDDHn","LBXFERSIA","LBXFERSIHn","LBXIL6A","LBXIL6Hn","LBDFBSIA","LBDFBSIHn","LBDSALSIA","LBDSALSIHn","LBXSAPSIA","LBXSAPSIHn","LBXSGTSIA","LBXSGTSIHn","LBXCFDA","LBXCFDHn","LBXFIOA","LBXFIOHn","LBXPOA","LBXPOHn","LBXPCOA","LBXPCOHn","LBXSC3SIA","LBXSC3SIHn","LBXPHA","LBXPHHn","LBXBEH","LBXBEHn","LBXA4A","LBXA4Hn","LBXTCA","LBXTCHn","LBXTRA","LBXTRHn","LBXSCKA","LBXSCKHn","LBXPSCKA","LBXPSCKHn"]

24
def numeric_conversion(datafile):
Alberto Blázquez Herranz's avatar
Alberto Blázquez Herranz committed
25
    
26
    #datafile = pd.read_csv(datafile_path, csv_separator)
Alberto Blázquez Herranz's avatar
Alberto Blázquez Herranz committed
27 28
    
    
29
    convert_col = [x for x in datafile.columns if x in categorical_variables]
Alberto Blázquez Herranz's avatar
Alberto Blázquez Herranz committed
30
    
31 32 33 34 35 36 37 38 39
    for col in convert_col:
        
        unique_values = datafile[col].unique()
        
        numeric_column_dict = {str(x): i for i, x in enumerate(unique_values)}
        
        numeric_column = [numeric_column_dict[str(x)] for x in datafile[col]]
        
        datafile[col + "_numeric"] = numeric_column
40
    
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
    
    verify_num_col = [x for x in datafile.columns if x in numeric_variables]
    
    for col in verify_num_col:
        
        datafile[col] = [float(x) for x in datafile[col]]
        
        
    verify_cat_col = [x for x in datafile.columns if x in categorical_variables]
    
    for col in verify_cat_col:
        
        datafile[col] = [str(x) for x in datafile[col]]
    
    #new_datafile_path = datafile_path.replace(".csv", "_numeric.csv")
    #datafile.to_csv(new_datafile_path, index = False, quoting=csv.QUOTE_NONNUMERIC)
    return(datafile)