Discussion:Liste des pays par IDH ajusté selon les inégalités

Le contenu de la page n’est pas pris en charge dans d’autres langues.
Une page de Wikipédia, l'encyclopédie libre.
Autres discussions [liste]
  • Admissibilité
  • Neutralité
  • Droit d'auteur
  • Article de qualité
  • Bon article
  • Lumière sur
  • À faire
  • Archives
  • Commons

Où est Cuba?[modifier le code]

Cuba est 70eme sur la source fournie, et pas sur le tableau de l'article 2001:861:5E51:EB50:864:64E7:24DB:B38A (discuter) 7 juin 2022 à 11:54 (CEST)[répondre]

code python pour mettre à jour[modifier le code]

J'ai fait un petit script pour analyser le fichier excel et donner le tableau mis à jour. Le fichier excel est trouvable ici [1] (table 3) Le code ci dessous compulse le fihier excel, et enregistre dans un ficchier texte (Sortie.txt) le tableau mis à jour. il reste deux trois opérations à faire à la main, notamment l'en tête du tableau, la ligne "monde", et corriger les noms de pays qui n'ont pas été traduit automatiquement. il faut deux modules python openpyxl, et country_list.

from openpyxl import load_workbook
from country_list import countries_for_language


def litpays(ws, iligne):
    nom_anglais = ws['B'+str(iligne)].value
    IDH = ws['C'+str(iligne)].value
    IDHI = ws['E'+str(iligne)].value
    loss = ws['G'+str(iligne)].value
    return nom_anglais, IDH, IDHI, loss    
    

def formatte_pays(rang, p):
    # nom du pays
    try:
        francais = traduirenom(p[0])
    except: # pays quer countrylist ne peut pas traduire
        francais = p[0]
    strpays = """
        |-
        |{0}
        | style="text-align: left;" |{1}
        |{2}
        |{3}
        |{4:1.1f}%""".format(rang+1, '{{'+francais+'}}', p[1], p[2], p[3])
    # rang+1 car ça commence à zéro 
    return strpays

wb = load_workbook('2020_Statistical_Annex_Table_3.xlsx', read_only=True)
ws = wb['Table 3']

strsortie = """<!-- début du texte généré par le code python -->  """ 

noms_fr = dict(countries_for_language('fr'))
noms_en = dict(countries_for_language('en'))
# fonction pour traduire le nom de pays en français : 
traduirenom = lambda nom_en : noms_fr[list(noms_en.keys())[list(noms_en.values()).index(nom_en)]]

liste_pays = []
for iligne in range(5, 200):
    
    cell_name = 'A'+str(iligne)
    value = ws[cell_name].value
    if value is not None: # cellule non vide
        nom_anglais, IDH, IDHI, loss =  litpays(ws, iligne)
        if IDHI != '..': #données dispo
            liste_pays.append((nom_anglais, IDH, IDHI, loss))
            
        
# maintenant on classe par IDH
liste_par_IDHI= sorted(liste_pays, key=lambda x:-x[2])
       
for rang, p in enumerate(liste_par_IDHI):
    strsortie= strsortie+formatte_pays(rang,p)
     
strsortie = strsortie + '\n<!-- fin du texte généré par le code python -->'
fout = open('Sortie.txt', 'w')
fout.write(strsortie)

Raminagrobis (discuter) 6 août 2022 à 19:09 (CEST)[répondre]