Ejemplo n.º 1
0
	def ajout_pays(self, contenu):
		"""Cette méthode permet d'ajouter un pays comme la précédente méthode ajout_section"""
		
		gestionnaire = Gestionnaire()
		donnees = Data_Base().donnees
		noms_indisponibles = [Pays(num_pays, donnees).get_name() for num_pays in range(len(donnees)) if Pays(num_pays, donnees).get_name()]
		
		if self.verification_connexion():
			nom_pays = input('\nEntrez le nom du pays à ajouter :\n> ')
			
			if nom_pays == 'none':
				input("\nVous ne pouvez pas nommer un pays 'none'.\nAppyez sur entrer pour continuer.")
				return self.afficher_pays(contenu)
			if nom_pays in noms_indisponibles:
				input('\nCe pays est déjà dans la liste.\nAppyez sur entrer pour continuer.')
				return self.afficher_pays(contenu)
			
			confirmation = input("\nConfirmation de l'ajout du pays (O/N) ?\n> ")
			if confirmation not in ["o","O"]:
				input("\nEchec de l'ajout du pays.\nAppyez sur entrer pour continuer.")
				return self.afficher_pays(contenu)
				
			donnees.append({})
			nouveau_pays = Pays(len(donnees)-1, donnees)
			nouveau_pays.set_name(nom_pays)
			nouveau_pays.set_infos_de_base()
			
			gestionnaire.update(nouveau_pays.donnees)
			input("\nLe pays a bien été ajouté.\nAppuyez sur entrer pour continuer.")

		return self.afficher_pays(contenu)
Ejemplo n.º 2
0
    def somme(self):
        """Cette méthode renvoie un data frame d'une colonne. Elle fait la somme
		des différents critères sur les pays."""

        donnees = Data_Base().donnees
        superficie_tot = sum([
            elm[0]
            for elm in self.liste_triee_selon_critere(donnees, 'superficie')
        ])
        population_tot = sum([
            elm[0]
            for elm in self.liste_triee_selon_critere(donnees, 'population')
        ])
        dette_tot = sum([
            elm[0] for elm in self.liste_triee_selon_critere(donnees, 'dette')
        ])

        criteres = [
            "La somme des superficies de tous les pays",
            "La somme des populations de tous les pays",
            "La somme des dettes de tous les pays"
        ]
        index = criteres
        valeurs = [[superficie_tot], [population_tot], [dette_tot]]
        return pandas.DataFrame(valeurs, index=criteres, columns=[''])
Ejemplo n.º 3
0
	def _decider_correction(self, contenu, prop_cor):
		"""Cette méthode permet au géographe de choisir entre valider ou refuser
		une proposition de correction."""
		
		donnees = Data_Base().donnees
		gestionnaire = Gestionnaire()
		try :
			section_du_texte = Section(prop_cor.num_pays, donnees, prop_cor.chemin_prop)
		except :
			input('\nIl semble que la donnée initiale a été supprimée. Cette proposition va alors être supprimée.\nAppuyez sur entrer pour continuer')
			gestionnaire.suppr_elm(prop_cor)
			return self.gestion_corrections(contenu)	
		
		print("\nTexte actuel :\n")
		print(section_du_texte.contenu["text"] + "\n")
		print("Proposition de correction :\n")
		print(prop_cor.txt_prop + "\n")
		
		while True:
			validation = input("Voulez-vous valider cette proposition de correction (V : valider / R : refuser / P : aucune action) ?\n> ")
			if validation in ["v","V","r","R","p","P"]:
				break
			else :
				input("\nVotre réponse doit être V, R ou P.\nAppyez sur entrer pour continuer.\n")
				
		if validation in ['v', 'V']:
			self._valider_prop(prop_cor, section_du_texte)
		if validation in ['r', 'R']:
			self._refuser_prop(prop_cor)
			
		return self.gestion_corrections(contenu)
Ejemplo n.º 4
0
    def sup_inf_seuil(self, critere, seuil):
        donnees = Data_Base().donnees

        liste_triee_selon_critere = self.liste_triee_selon_critere(
            donnees, critere)
        liste_triee_selon_critere.reverse()
        pays_sup_seuil = []
        pays_inf_seuil = []
        col = ['PAYS', critere.upper()]

        for elm in liste_triee_selon_critere:
            if elm[0] >= seuil:
                pays_sup_seuil.append([
                    elm[1].get_name(),
                    self.simplification(elm[1].get_critere(critere))
                ])
            else:
                pays_inf_seuil.append([
                    elm[1].get_name(),
                    self.simplification(elm[1].get_critere(critere))
                ])

        tableau_pays_sup = pandas.DataFrame(
            pays_sup_seuil,
            index=[i + 1 for i in range(len(pays_sup_seuil))],
            columns=col)
        tableau_pays_inf = pandas.DataFrame(
            pays_inf_seuil,
            index=[i + 1 for i in range(len(pays_inf_seuil))],
            columns=col)

        return (len(pays_sup_seuil), tableau_pays_sup, len(pays_inf_seuil),
                tableau_pays_inf)
Ejemplo n.º 5
0
    def supprimer_pays(self, contenu):
        gestionnaire = Gestionnaire()
        donnees = Data_Base().donnees
        noms_pays = [
            Pays(num_pays, donnees).get_name()
            for num_pays in range(len(donnees))
        ]

        if self.verification_connexion():
            nom_pays_a_supprimer = input(
                '\nEntrez le nom du pays à supprimer\n> ')
            if nom_pays_a_supprimer not in noms_pays:
                input(
                    "\nCe pays n'existe pas.\nAppuyez sur entrer pour continuer."
                )
                return self.afficher_pays(contenu)
            else:
                num_pays_a_supprimer = noms_pays.index(nom_pays_a_supprimer)

            confirmation = input(
                "\nConfirmation de la suppression du pays (O/N) ? #Cela supprimera aussi toutes ses données#\n> "
            )
            if confirmation in ["o", "O"]:
                del donnees[num_pays_a_supprimer]
                gestionnaire.update(donnees)
                input(
                    "\nLe pays a bien été supprimée.\nAppuyez sur entrer pour continuer."
                )
            else:
                input(
                    "\nVotre tentative de suppression n'a pas abouti.\nAppuyez sur entrer pour continuer."
                )

        return self.afficher_pays(contenu)
Ejemplo n.º 6
0
    def top_and_flop(self, critere, taille_classement):
        donnees = Data_Base().donnees

        liste_triee_selon_critere = self.liste_triee_selon_critere(
            donnees, critere)

        top = []
        flop = []
        rang_top = range(1, taille_classement + 1)
        rang_flop = [
            len(liste_triee_selon_critere) - i
            for i in range(taille_classement)
        ]
        col = ['PAYS', critere.upper()]
        for i in range(taille_classement):
            top.append([
                liste_triee_selon_critere[-i - 1][1].get_name(),
                self.simplification(
                    liste_triee_selon_critere[-i - 1][1].get_critere(critere))
            ])
            flop.append([
                liste_triee_selon_critere[i][1].get_name(),
                self.simplification(
                    liste_triee_selon_critere[i][1].get_critere(critere))
            ])

        return (pandas.DataFrame(top, index=rang_top, columns=col),
                pandas.DataFrame(flop, index=rang_flop, columns=col))
Ejemplo n.º 7
0
    def top_and_flop(self, critere, taille_classement):
        """Cette méthode renvoie deux data frames.
		Le premier correspond aux 'taille_classement'(entier) premiers pays selon un certain critère.
		Le second data frame correspond aux 'taille_classement'(entier) dernier pays selon un certain critère."""

        donnees = Data_Base().donnees

        liste_triee_selon_critere = self.liste_triee_selon_critere(
            donnees, critere)

        top = []
        flop = []
        rang_top = range(1, taille_classement + 1)
        rang_flop = [
            len(liste_triee_selon_critere) - i
            for i in range(taille_classement)
        ]
        col = ['PAYS', critere.upper()]
        for i in range(taille_classement):
            top.append([
                liste_triee_selon_critere[-i - 1][1].get_name(),
                self.simplification(
                    liste_triee_selon_critere[-i - 1][1].get_critere(critere))
            ])
            flop.append([
                liste_triee_selon_critere[i][1].get_name(),
                self.simplification(
                    liste_triee_selon_critere[i][1].get_critere(critere))
            ])

        return (pandas.DataFrame(top, index=rang_top, columns=col),
                pandas.DataFrame(flop, index=rang_flop, columns=col))
Ejemplo n.º 8
0
    def summary(self):
        """La méthode summary renvoie un data frame donnant des statistiques sur les différents critères (nombres de valeurs, moyenne, écart-type, ...)
		mais uniquement sur les colonnes numériques. Pour cela, la méthode crée un dictionnaire où chaque clé correspond à un critère
		que l'on associe à un data frame. Enfin, on utilise la méthode describe de pandas pour avoir notre résumé statistique."""

        donnees = Data_Base().donnees

        superficie = pandas.Series([
            elm[0]
            for elm in self.liste_triee_selon_critere(donnees, 'superficie')
        ])
        population = pandas.Series([
            elm[0]
            for elm in self.liste_triee_selon_critere(donnees, 'population')
        ])
        croissance_demographique = pandas.Series([
            elm[0] for elm in self.liste_triee_selon_critere(
                donnees, 'croissance démographique')
        ])
        inflation = pandas.Series([
            elm[0]
            for elm in self.liste_triee_selon_critere(donnees, 'inflation')
        ])
        dette = pandas.Series([
            elm[0] for elm in self.liste_triee_selon_critere(donnees, 'dette')
        ])
        chomage = pandas.Series([
            elm[0]
            for elm in self.liste_triee_selon_critere(donnees, 'chômage')
        ])
        depenses_sante = pandas.Series([
            elm[0] for elm in self.liste_triee_selon_critere(
                donnees, 'dépenses santé')
        ])
        depenses_éducation = pandas.Series([
            elm[0] for elm in self.liste_triee_selon_critere(
                donnees, 'dépenses éducation')
        ])
        depenses_militaires = pandas.Series([
            elm[0] for elm in self.liste_triee_selon_critere(
                donnees, 'dépenses militaires')
        ])

        dic = {
            'Superficie': superficie,
            'Population': population,
            'Croissance démo': croissance_demographique,
            'Inflation': inflation,
            'Dette': dette,
            'Chômage': chomage,
            'Dépenses santé': depenses_sante,
            'Dépenses éducation': depenses_éducation,
            'Dépenses militaires': depenses_militaires
        }

        return pandas.DataFrame(dic).describe()
Ejemplo n.º 9
0
	def afficher_section(self, section, contenu):
		donnees = Data_Base().donnees
		num_pays = section.num_pays
		chemin = section.chemin
		
		choix_section = {}
		
		chemin_a_afficher = Pays(section.num_pays, donnees).get_name()
		for partie in chemin:
			chemin_a_afficher += ' -> {}'.format(partie)
		
		if section.is_section_de_texte():
			print('\n{} :\n'.format(chemin_a_afficher))
			print(section.contenu['text'])

			self.correction(choix_section, section)
			
			return self.afficher_section(Section(num_pays, donnees, chemin[:-1]), contenu)
		
		sous_sections = section.get_noms_sous_sections()
		
		if len(sous_sections) == 0:
			choix_section['question'] = '{}\n\nCette section est vide.'.format(chemin_a_afficher)
		else :
			choix_section['question'] = '{}\n\nChoisissez une option.'.format(chemin_a_afficher)
			
		choix_section['individu'] = contenu['individu']
		choix_section['options'] = sous_sections
		choix_section['options basiques'] = []
		choix_section['actions'] = []
		
		for partie in sous_sections:
			nouveau_chemin = chemin + [partie]
			choix_section['actions'].append((lambda contenu, nouveau_chemin=nouveau_chemin : self.afficher_section(Section(num_pays, donnees, nouveau_chemin), contenu)))
			
		if self.statut == 'g' or self.statut == 'a':
			if len(sous_sections) == 0:
				choix_section['options basiques'].append(['AJOUTER UN TEXTE', 'AT'])
				choix_section['actions'].append(lambda var : self.ajout_texte(contenu, section))
			choix_section['options basiques'].append(['AJOUTER UNE SECTION', 'AS'])
			choix_section['actions'].append(lambda var : self.ajout_section(contenu, section))
		if self.statut == 'a' and len(sous_sections) != 0:
			choix_section['options basiques'].append(['SUPPRIMER UNE SECTION', 'S'])
			choix_section['actions'].append(lambda var : self.supprimer_section(contenu, section))
				
		choix_section['options basiques'].append(['RETOUR', 'R'])
		if len(chemin) == 0:
			choix_section['actions'].append(lambda var : self.afficher_pays(contenu))
		else:
			choix_section['actions'].append(lambda var : self.afficher_section(Section(num_pays, donnees, chemin[:-1]), contenu))
		choix_section['options basiques'].append(["RETOUR AU MENU DE L'ACTEUR", 'RMA'])
		choix_section['actions'].append(lambda contenu : Menu_Ouvert(self.contenu_initial))
		choix_section['options basiques'].append(['QUITTER', 'Q'])
		choix_section['actions'].append(self.quitter)
		
		return Menu_Ouvert(choix_section)
Ejemplo n.º 10
0
 def diagramme_en_barres(self, critere):
     donnees = Data_Base().donnees
     liste_triee_selon_critere = self.liste_triee_selon_critere(
         donnees, critere)
     liste_triee = [elm[0] for elm in liste_triee_selon_critere]
     x = [
         self.simplification(elm[1].get_name())
         for elm in liste_triee_selon_critere
     ]
     plt.barh(x, liste_triee, color='b')
     plt.yticks(fontsize=3.2)
     plt.show()
Ejemplo n.º 11
0
    def summary(self):
        donnees = Data_Base().donnees

        superficie = pandas.Series([
            elm[0]
            for elm in self.liste_triee_selon_critere(donnees, 'superficie')
        ])
        population = pandas.Series([
            elm[0]
            for elm in self.liste_triee_selon_critere(donnees, 'population')
        ])
        croissance_demographique = pandas.Series([
            elm[0] for elm in self.liste_triee_selon_critere(
                donnees, 'croissance démographique')
        ])
        inflation = pandas.Series([
            elm[0]
            for elm in self.liste_triee_selon_critere(donnees, 'inflation')
        ])
        dette = pandas.Series([
            elm[0] for elm in self.liste_triee_selon_critere(donnees, 'dette')
        ])
        chomage = pandas.Series([
            elm[0]
            for elm in self.liste_triee_selon_critere(donnees, 'chômage')
        ])
        depenses_sante = pandas.Series([
            elm[0] for elm in self.liste_triee_selon_critere(
                donnees, 'dépenses santé')
        ])
        depenses_éducation = pandas.Series([
            elm[0] for elm in self.liste_triee_selon_critere(
                donnees, 'dépenses éducation')
        ])
        depenses_militaires = pandas.Series([
            elm[0] for elm in self.liste_triee_selon_critere(
                donnees, 'dépenses militaires')
        ])

        dic = {
            'Superficie': superficie,
            'Population': population,
            'Croissance démo': croissance_demographique,
            'Inflation': inflation,
            'Dette': dette,
            'Chômage': chomage,
            'Dépenses santé': depenses_sante,
            'Dépenses éducation': depenses_éducation,
            'Dépenses militaires': depenses_militaires
        }

        return pandas.DataFrame(dic).describe()
Ejemplo n.º 12
0
    def clustering(self, nb_clusters):
        """Cette méthode utilise la méthode des Kmeans pour permettre à la fonction de créer des classes entre les pays.
		Elle prend en argument le nombre de classes que l'utilisateur veut former.
		Cette méthode renvoie un data frame où chaque colonne correspond à chaque classe 
		avec le nom des pays dans celles ci."""

        donnees = Data_Base().donnees

        criteres = [
            'superficie', 'population', 'croissance démographique',
            'inflation', 'dette', 'chômage', 'dépenses santé',
            'dépenses éducation', 'dépenses militaires'
        ]

        valeurs_pays = []
        liste_des_pays_comptabilises = []

        for num_pays in range(len(donnees)):
            pays = Pays(num_pays, donnees)
            if pays.get_name():
                if True not in [
                        self.numerisation_critere(pays, critere) == 'NA'
                        for critere in criteres
                ]:
                    liste_des_pays_comptabilises.append(
                        self.simplification(pays.get_name()))
                    valeurs_pays.append([
                        self.numerisation_critere(pays, critere)
                        for critere in criteres
                    ])

        clf = KMeans(n_clusters=nb_clusters)
        clf.fit(np.array(valeurs_pays))
        labels = clf.labels_

        pays_dans_clusters = [[] for i in range(nb_clusters)]

        for i in range(len(labels)):
            for cl in range(nb_clusters):
                if labels[i] == cl:
                    pays_dans_clusters[cl].append(
                        liste_des_pays_comptabilises[i])

        for cluster in pays_dans_clusters:
            while len(cluster) < max([len(cl) for cl in pays_dans_clusters]):
                cluster.append('')

        liste_des_clusters = [
            'Cluster {}'.format(i + 1) for i in range(nb_clusters)
        ]

        return pandas.DataFrame(pays_dans_clusters, index=liste_des_clusters).T
Ejemplo n.º 13
0
    def diagramme_en_barres(self, critere):
        """Cette méthode crée un diagramme en barres selon un critère choisi par le data scientist"""

        donnees = Data_Base().donnees
        liste_triee_selon_critere = self.liste_triee_selon_critere(
            donnees, critere)
        liste_triee = [elm[0] for elm in liste_triee_selon_critere]
        x = [
            self.simplification(elm[1].get_name())
            for elm in liste_triee_selon_critere
        ]
        plt.barh(x, liste_triee, color='b')
        plt.yticks(fontsize=3.2)
        plt.show()
Ejemplo n.º 14
0
    def clustering(self, nb_clusters):
        donnees = Data_Base().donnees

        criteres = [
            'superficie', 'population', 'croissance démographique',
            'inflation', 'dette', 'chômage', 'dépenses santé',
            'dépenses éducation', 'dépenses militaires'
        ]

        valeurs_pays = []
        liste_des_pays_comptabilises = []

        for num_pays in range(len(donnees)):
            pays = Pays(num_pays, donnees)
            if pays.get_name():
                if True not in [
                        self.numerisation_critere(pays, critere) == 'NA'
                        for critere in criteres
                ]:
                    liste_des_pays_comptabilises.append(
                        self.simplification(pays.get_name()))
                    valeurs_pays.append([
                        self.numerisation_critere(pays, critere)
                        for critere in criteres
                    ])

        clf = KMeans(n_clusters=nb_clusters)
        clf.fit(np.array(valeurs_pays))
        labels = clf.labels_

        pays_dans_clusters = [[] for i in range(nb_clusters)]

        for i in range(len(labels)):
            for cl in range(nb_clusters):
                if labels[i] == cl:
                    pays_dans_clusters[cl].append(
                        liste_des_pays_comptabilises[i])

        for cluster in pays_dans_clusters:
            while len(cluster) < max([len(cl) for cl in pays_dans_clusters]):
                cluster.append('')

        liste_des_clusters = [
            'Cluster {}'.format(i + 1) for i in range(nb_clusters)
        ]

        return pandas.DataFrame(pays_dans_clusters, index=liste_des_clusters).T
Ejemplo n.º 15
0
    def afficher_pays(self, contenu):
        """ Cette méthode permet au consultant d'afficher la liste des différents pays
		et d'en choisir un par le nombre correspondant au pays affiché dans le menu"""

        if self.contenu_initial == {}:
            self.contenu_initial = contenu

        donnees = Data_Base().donnees
        nb_pays = len(donnees)

        choix_pays = {}
        choix_pays['question'] = 'Choisissez un pays.'
        choix_pays['individu'] = contenu['individu']

        liste_des_pays = []
        for num_pays in range(nb_pays):
            nom_pays = Pays(num_pays, donnees).get_name()
            if nom_pays:
                liste_des_pays.append((nom_pays, num_pays))
        liste_des_pays.sort()

        liste_des_noms = [pays[0] for pays in liste_des_pays]
        liste_des_nums = [pays[1] for pays in liste_des_pays]

        choix_pays['options'] = liste_des_noms
        choix_pays['options basiques'] = []
        choix_pays['actions'] = [
            lambda var, num=num: self.afficher_section(Section(
                num, donnees), contenu) for num in liste_des_nums
        ]

        if self.statut == 'g' or self.statut == 'a':
            choix_pays['options basiques'].append(['AJOUTER UN PAYS', 'A'])
            choix_pays['actions'].append(lambda var: self.ajout_pays(contenu))
        if self.statut == 'a':
            choix_pays['options basiques'].append(['SUPPRIMER UN PAYS', 'S'])
            choix_pays['actions'].append(
                lambda var: self.supprimer_pays(contenu))
        choix_pays['options basiques'].append(
            ["RETOUR AU MENU DE L'ACTEUR", 'R'])
        choix_pays['actions'].append(
            lambda var: Menu_Ouvert(self.contenu_initial))
        choix_pays['options basiques'].append(['QUITTER', 'Q'])
        choix_pays['actions'].append(self.quitter)

        return Menu_Ouvert(choix_pays)
Ejemplo n.º 16
0
    def _ajout_pays_table_criteres(self, contenu, liste_pays_a_afficher,
                                   fonction_a_appliquer):
        """Cette méthode permet d'ajouter un pays à une liste afin d'appliquer une autre méthode 
		en fonction d'un certain critère. Cette méthode est utilisée par la fonction critere_usuel."""

        donnees = Data_Base().donnees
        nb_pays = len(donnees)

        if len(liste_pays_a_afficher) >= 10:
            input(
                "\nVous ne pouvez pas afficher plus de 10 pays à la fois.\nAppuyez sur entrer pour continuer."
            )
            return fonction_a_appliquer(contenu, liste_pays_a_afficher)

        choix_pays = {}
        choix_pays['question'] = 'Choisissez un pays.'
        choix_pays['individu'] = contenu['individu']
        choix_pays['pseudo'] = contenu['pseudo']

        liste_des_pays = []
        liste_des_nums_pays_a_afficher = [
            pays.num_pays for pays in liste_pays_a_afficher
        ]
        liste_des_noms_pays_a_afficher = [
            pays.get_name() for pays in liste_pays_a_afficher
        ]

        for num_pays in range(nb_pays):
            nom_pays = Pays(num_pays, donnees).get_name()
            if nom_pays and nom_pays not in liste_des_noms_pays_a_afficher:
                liste_des_pays.append((nom_pays, num_pays))
        liste_des_pays.sort()
        liste_des_noms = [pays[0] for pays in liste_des_pays]
        liste_des_nums = [pays[1] for pays in liste_des_pays]

        choix_pays['options'] = liste_des_noms
        choix_pays['options basiques'] = []
        choix_pays['actions'] = [
            lambda var, num=num: fonction_a_appliquer(
                contenu, liste_pays_a_afficher + [Pays(num, donnees)])
            for num in liste_des_nums
            if num not in liste_des_nums_pays_a_afficher
        ]

        return Menu_Ouvert(choix_pays)
Ejemplo n.º 17
0
    def boites_a_moustache(self):
        """Cette méthode crée une boîte à moustache sur les différentes classes d'ages."""

        donnees = Data_Base().donnees

        classe_age_0 = []
        classe_age_1 = []
        classe_age_2 = []
        classe_age_3 = []
        classe_age_4 = []

        for num_pays in range(len(donnees)):
            pays = Pays(num_pays, donnees)
            if pays.get_name():
                if self.numerisation_critere(pays, '0-14') != 'NA':
                    classe_age_0.append(self.numerisation_critere(
                        pays, '0-14'))
                if self.numerisation_critere(pays, '15-24') != 'NA':
                    classe_age_1.append(
                        self.numerisation_critere(pays, '15-24'))
                if self.numerisation_critere(pays, '25-54') != 'NA':
                    classe_age_2.append(
                        self.numerisation_critere(pays, '25-54'))
                if self.numerisation_critere(pays, '55-64') != 'NA':
                    classe_age_3.append(
                        self.numerisation_critere(pays, '55-64'))
                if self.numerisation_critere(pays, '>=65') != 'NA':
                    classe_age_4.append(self.numerisation_critere(
                        pays, '>=65'))

        plt.title(
            "Box-plots correspondants aux répartitions des valeurs des 5 classes d’âge pour tous les pays."
        )
        plt.boxplot([
            classe_age_0, classe_age_1, classe_age_2, classe_age_3,
            classe_age_4
        ],
                    labels=[
                        "0-14 years", "15-24 years", "25-54 years",
                        "55-64 years", ">=65"
                    ])
        plt.show()
Ejemplo n.º 18
0
    def somme(self):
        donnees = Data_Base().donnees
        superficie_tot = sum([
            elm[0]
            for elm in self.liste_triee_selon_critere(donnees, 'superficie')
        ])
        population_tot = sum([
            elm[0]
            for elm in self.liste_triee_selon_critere(donnees, 'population')
        ])
        dette_tot = sum([
            elm[0] for elm in self.liste_triee_selon_critere(donnees, 'dette')
        ])

        criteres = [
            "La somme des superficies de tous les pays",
            "La somme des populations de tous les pays",
            "La somme des dettes de tous les pays"
        ]
        index = criteres
        valeurs = [[superficie_tot], [population_tot], [dette_tot]]
        return pandas.DataFrame(valeurs, index=criteres, columns=[''])
Ejemplo n.º 19
0
    def sup_inf_seuil(self, critere, seuil):
        """Cette méthode crée deux tableaux. Elle prend en argument un critère et un seuil.
		La premier tableau correspond aux pays dépassant le seuil déterminé par l'utilisateur.
		Le second correspond aux pays sous ce seuil. Elle renvoie 4 informations :
		le nombre de pays dépassant le seuil avec le tableau des pays correspondant avec les valeurs de ce critère, 
		et le nombre de pays ne dépassant pas le seuil avec le tableau des pays correspondant avec les valeurs de ce critère"""

        donnees = Data_Base().donnees

        liste_triee_selon_critere = self.liste_triee_selon_critere(
            donnees, critere)
        liste_triee_selon_critere.reverse()
        pays_sup_seuil = []
        pays_inf_seuil = []
        col = ['PAYS', critere.upper()]

        for elm in liste_triee_selon_critere:
            if elm[0] >= seuil:
                pays_sup_seuil.append([
                    elm[1].get_name(),
                    self.simplification(elm[1].get_critere(critere))
                ])
            else:
                pays_inf_seuil.append([
                    elm[1].get_name(),
                    self.simplification(elm[1].get_critere(critere))
                ])

        tableau_pays_sup = pandas.DataFrame(
            pays_sup_seuil,
            index=[i + 1 for i in range(len(pays_sup_seuil))],
            columns=col)
        tableau_pays_inf = pandas.DataFrame(
            pays_inf_seuil,
            index=[i + 1 for i in range(len(pays_inf_seuil))],
            columns=col)

        return (len(pays_sup_seuil), tableau_pays_sup, len(pays_inf_seuil),
                tableau_pays_inf)
Ejemplo n.º 20
0
	def __str__(self):
		donnees = Data_Base().donnees
		res = Pays(self.num_pays, donnees).get_name() + '/'
		for i in range(len(self.chemin_prop)):
			res += self.chemin_prop[i] + '/'
		return res