Discussion:Liste des pays par IDH ajusté selon les inégalités
Apparence
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)
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)
Catégories :
- Article du projet Démographie d'avancement B
- Article du projet Démographie d'importance moyenne
- Article du projet Économie d'avancement B
- Article du projet Économie d'importance moyenne
- Article du projet Éducation d'avancement B
- Article du projet Éducation d'importance moyenne
- Article du projet Humanitaire et développement d'avancement B
- Article du projet Humanitaire et développement d'importance moyenne
- Article du projet Société d'avancement B
- Article du projet Société d'importance faible