import pandas as pd import json df_res = pd.read_csv('res_facture.csv') with open('./v1/dictionaries/code_fournisseur2fournisseur.json', 'r') as f_in: id_editor2editor = json.load(f_in) # Fonction pour calculer le ratio des champs "item_editor" vides def calculate_empty_item_editor_ratio(df): total_items = len(df) empty_item_editors = df['item_editor'].isna().sum() if total_items > 0: ratio = 1 - empty_item_editors / total_items else: ratio = 0 return ratio results = {} for code_editor in id_editor2editor.keys(): # Extraire le code éditeur de la colonne "nom_complet" pour filtrer les lignes df_res['extracted_code'] = df_res['nom_complet'].apply(lambda x: x.split('_')[1] if len(x.split('_')) > 1 else None) # Filtrer le DataFrame pour les lignes où le code extrait est égal au code de l'éditeur df_editor = df_res[df_res['extracted_code'] == code_editor] ratio = calculate_empty_item_editor_ratio(df_editor) results[code_editor] = ratio print(json.dumps(results))