Newer
Older
APC-bills / metric-output.py
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))