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
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.
|
|
|