You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

96 lines
3.3 KiB

import pandas as pd
import psycopg2 as psy
import numpy as np
import matplotlib.pyplot as plt
import subprocess as sp
# Problématique : Où en est la liberté de la presse dans le monde?
# -- Quantité -- #
# le format des données est ".csv" et elles sont séparées
# 180 lignes et 16 colonnes
# Les colonnes les plus importantes pour une étude statistique sont les pays bien-sûr,
# les scores économiques et politiques avec les scores sociaux et de sécurité
# ainsi que tous les autres scores. Ceux sont eux qui vont pouvoir calculer le classement.
# Ces derniers pourront nous permettre d'établir
# un lien entre la position du pays dans le classement et leur scores respectifs.
# Les autres caractéristiques pertinentes sont aussi le nombre de journalistes
# ou personnes travaillant dans les media qui ont été emprisonnés ou tués.
# très intéressant à mettre en perspective avec la liberté de la presse en 2022.
# -- Nettoyage et présentation de données -- #
data = pd.read_csv(r'Report_2022.csv')
df = pd.DataFrame(data)
df = df.drop_duplicates()
df=df.dropna()
# print(df)
# Les données sont des nombre décimaux notamment pour les différents score des pays
#, des entiers pour le nombre de journalistes tués ou emprisonnés,
# et des chaînes de caractères afin de de désigner un pays.
# Nous pouvons calculer plusieurs statistiques qui vont être intéressantes pour notre étude.
# Par exemple, l'étendue ou la moyenne des différents scores,
# la somme des pays où la situation est considérée problématique ou "vraiment sérieuse"
# La moyenne des journalistes tués par pays, La moyenne des journalistes emprisonnés par pays
secscore = df["Security Score"]
print("Moyenne du score de sécurité : ",secscore.mean())
socscore = df["Social Score"]
print("Moyenne du score social : ",socscore.mean())
socscore = df["Social Score"]
print("Moyenne du score social : ",socscore.mean())
polscore = df["Politic Score"]
print("Moyenne du score politique : ",polscore.mean())
ecoscore = df["Economic Score"]
print("Moyenne du score économique : ",ecoscore.mean())
jkilled = df["Journalist Killed"]
print("Moyenne des journalistes tués dans le monde : ", jkilled.mean())
jimp = df["Journalist Imprisoned"]
print("Moyenne des journalistes emprisonnés dans le monde : ", jimp.mean())
# Boîte à moustache du score global, qui nous permettra de voir la médiane,
# et les données "abérrantes" dans le cas où il y en a.
gscore = df["Global Score"]
plt.figure()
gscore.plot.box()
plt.show()
# On remarque qu'aucune données n'est considérées comme "abérrantes".
# Histogramme des journalistes tués par pays
plt.figure()
jkilled.hist(bins=50)
plt.title("Histogramme des journalistes tués par pays")
plt.xlabel("Nombre de journalistes tués")
plt.ylabel("Nombre de pays")
plt.show()
# Grâce à cet histogramme, nous pouvons remarquer que plus de 160 pays n'ont pas
# tués de journaliste. On constate également,
# que le record de l'année est à 9 journalistes tués. Record détenu par le Mexique.
# Histogramme du score global
plt.figure()
gscore.hist(bins=50)
plt.title("Histogramme du score global")
plt.xlabel("Score sur 100")
plt.ylabel("Nombre de pays")
plt.show()
# Clui-ci permet d'avoir une idée globale de la répartiotion du score globale,
# que l'on pourra comparer avec nos données actuelles.