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))