Projet2024/Projet_data_viz_CZSS
0
1from datatable import dt, f, by, g, join, sort, update, ifelse, median, min, max, math2import pandas as pd3import numpy as np4 5uc = dt.fread('./data/data_projet.csv')6 7uc[:, update(risque_devise = ifelse(f.devise == 'EUR','Oui','Non')) ]8uc[:, update(risque_devise_cat = ifelse(f.risque_devise == 'Oui',0,1)) ]9uc[:, update(sfdr_cat = ifelse(f.sfdr == 'autre',1,10 f.sfdr == 'article 6', 2,11 f.sfdr == 'article 8', 3,12 f.sfdr == 'artilce 9', 4,13 0)) ]14uc[:, update(complexite_cat = ifelse(f.complexite == 'Oui',1,0)) ]15uc[:, update(coupon_cat = ifelse(f.coupon == 'Oui',1,0)) ]16 17def scoring(x, type = 'quantitatif', order = 1):18 if type == 'quantitatif':19 return ifelse(order * x == median(order * x), 5,20 order * x < median(order * x),math.round(500 * (order * x - min(order * x))/(median(order * x)-min(order * x)))/100,21 order * x > median(order * x),math.round(500 + 500*(order * x - median(order * x))/(max(order * x)-median(order * x)))/100,22 None)23 elif type == 'qualitatif':24 return ifelse(order * x == median(order * x), 5,25 order * x < median(order * x),math.round(500 - 500*(median(order * x) - order * x)/(median(order * x)))/100,26 order * x > median(order * x),math.round(500 + 500*(order * x - median(order * x))/(max(order * x)-median(order * x)))/100,27 None)28 else :29 return 'type de scoring non reconnu'30 31def encodage_sfdr (vect_sfdr) : 32 sfdr_encode=[]33 for elem in vect_sfdr :34 if elem == 'autre' :35 sfdr_encode+=[1]36 elif elem == 'article 6' :37 sfdr_encode+=[2]38 elif elem == 'article 8' :39 sfdr_encode+=[3]40 elif elem == 'article 9' :41 sfdr_encode+=[4]42 else:43 sfdr_encode+=[0]44 return (sfdr_encode)45 46def encodage_devise(vect_devise) : 47 devise_encode = []48 for elem in vect_devise :49 if elem == 'EUR' :50 devise_encode += [True]51 else : 52 devise_encode += [False]53 return (devise_encode)54 