1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
|
def ecriture_html(df,colonne, msg='',title='', filename=''):
result = '''
<html>
<head>
<style>
h2 {
text-align: center;
font-family: Helvetica, Arial, sans-serif;
}
table {
margin-left: auto;
margin-right: auto;
}
table, th, td {
border: 1px solid black;
border-collapse: collapse;
}
th, td {
padding: 5px;
text-align: center;
font-family: Helvetica, Arial, sans-serif;
font-size: 90%;
}
table tbody tr:hover {
background-color: #dddddd;
}
.wide {
width: 90%;
}
</style>
</head>
<body>
'''
result += '<h2> %s </h2>\n\n' % title
result +='<h4> %s </h4>\n\n' % msg
#style1 = df.style.apply(Allume_le_plus_grand,threshold=1.0,column=colonne,axis=1)
result += df.to_html(classes='data', escape=False)
result += '''
</body>
</html>
'''
with open(filename, 'w') as f:
f.write(result)
def valeurs_manquantes():
table=[liste tables]
count=0
for table in tables:
column_names=retourne_colonne(table,conn)
requ="select * from schema."+table
row= oracle_to_dataframe(conn,requ, column_names)
rows=table
zero_val = (row == 0.00).astype(int).sum(axis=0)
#nombre de valeurs nulles
valeurs_absentes = row.isnull().sum()
#nombre de chaines vides
text_vide=(row == '""').astype(int).sum(axis=0)+(row == '-').astype(int).sum(axis=0)+(row == '---').astype(int).sum(axis=0)
#concatenez les resultat dans une table
ma_table = pd.concat([zero_val, valeurs_absentes,text_vide],axis=1)
#remplacer les na par 0
ma_table.fillna(0)
#nommez les colonnes
ma_table = ma_table.rename(columns = {0 : 'valeurs zero', 1 : 'valeurs_absentes', 2 : 'text_vide'})
#comptez les valeurs_absente
ma_table['Total Zero valeurs_absentes'] = ma_table['valeurs zero'] + ma_table['valeurs_absentes']+ma_table['text_vide']
#pourcentage les valeurs_absente
ma_table['% Total Zero valeurs_absentes'] = (100 * ma_table['Total Zero valeurs_absentes'] / len(row)).round(2)
#creation d'une colonne avec le typage de chaque colonne
ma_table['Data Type'] = row.dtypes
#tri descendant en fonction de la colonne Total Zero valeurs_absentes et eliminer les valeurs 0
ma_table = ma_table[ma_table.iloc[:,3] != 0].sort_values('Total Zero valeurs_absentes', ascending=False).reset_index()
texte="le dataframe %s contient %s colonne et %s lignes.\n \
Il y a %s colonnes qui ont des valeurs non utilisables." % (rows, str(row.shape[1]),str(row.shape[0]),str(ma_table.shape[0]))
#display(HTML(ma_table.to_html(r'......html')))
#print ('\n\n--------------------')
ecriture_html(ma_table,column_names,msg=texte, title=table, filename=r'.......html')
return |
Partager