4/05 ajout script avec insertions 2022,2021,2020

master
Louis LABORIE 2 years ago
parent 3df491f569
commit e0cbe397eb

@ -1,4 +1,4 @@
Country,ISO Code,Region,Position 2020,Position 2019,Global Score,With Abuses,Without Abuses,Journalist Killed,Media Workers Killed,Journalist Imprisoned,Media Workers Imprisoned,Situation
Country,ISO_Code,Region,Position_2020,Position 2019,Global_Score,With Abuses,Without Abuses,Journalist_Killed,Media_Workers_Killed,Journalist_Imprisoned,Media_Workers_Imprisoned,Situation
Afghanistan,AFG,Asia Pacific,122,121,62.3,38.91,68.17,4,2,0,0,Difficult
Albania,ALB,Europe,84,82,69.75,86.14,69.99,0,0,0,0,Problematic
Algeria,DZA,Arab States,146,141,54.48,70.04,54.48,0,0,7,0,Difficult
@ -119,7 +119,7 @@ Niger,NER,Africa,57,66,71.75,100.0,71.75,0,0,0,0,Problematic
Nigeria,NGA,Africa,115,120,64.37,52.29,67.39,2,0,1,0,Difficult
North Korea,PRK,Asia Pacific,180,179,14.18,48.07,14.18,0,0,0,0,Very Serious
North Macedonia,MKD,Europe,92,95,68.72,100.0,68.72,0,0,0,0,Problematic
Northern Cyprus,CYP,Europe,77,74,70.21,100.0,70.21,0,0,0,0,Problematic
Northern Cyprus,CYN,Europe,77,74,70.21,100.0,70.21,0,0,0,0,Problematic
Norway,NOR,Europe,1,1,92.16,100.0,92.16,0,0,0,0,Good
OECS,,,44,50,76.22,100.0,76.22,0,0,0,0,Satisfactory
Oman,OMN,Middle East,135,132,56.58,100.0,56.58,0,0,0,0,Difficult

1 Country ISO Code ISO_Code Region Position 2020 Position_2020 Position 2019 Global Score Global_Score With Abuses Without Abuses Journalist Killed Journalist_Killed Media Workers Killed Media_Workers_Killed Journalist Imprisoned Journalist_Imprisoned Media Workers Imprisoned Media_Workers_Imprisoned Situation
2 Afghanistan AFG Asia Pacific 122 121 62.3 38.91 68.17 4 2 0 0 Difficult
3 Albania ALB Europe 84 82 69.75 86.14 69.99 0 0 0 0 Problematic
4 Algeria DZA Arab States 146 141 54.48 70.04 54.48 0 0 7 0 Difficult
119 Nigeria NGA Africa 115 120 64.37 52.29 67.39 2 0 1 0 Difficult
120 North Korea PRK Asia Pacific 180 179 14.18 48.07 14.18 0 0 0 0 Very Serious
121 North Macedonia MKD Europe 92 95 68.72 100.0 68.72 0 0 0 0 Problematic
122 Northern Cyprus CYP CYN Europe 77 74 70.21 100.0 70.21 0 0 0 0 Problematic
123 Norway NOR Europe 1 1 92.16 100.0 92.16 0 0 0 0 Good
124 OECS 44 50 76.22 100.0 76.22 0 0 0 0 Satisfactory
125 Oman OMN Middle East 135 132 56.58 100.0 56.58 0 0 0 0 Difficult

@ -1,4 +1,4 @@
Country,ISO Code,Region,Position 2021,Position 2020,Global Score,With Abuses,Without Abuses,Journalist Killed,Media Workers Killed,Journalist Imprisoned,Media Workers Imprisoned,Situation
Country,ISO_Code,Region,Position_2021,Position_2020,Global_Score,With Abuses,Without Abuses,Journalist_Killed,Media_Workers_Killed,Journalist_Imprisoned,Media_Workers_Imprisoned,Situation
Afghanistan,AFG,Asia Pacific,122,122,59.81,36.72,65.6,3,3,0,0,Difficult
Albania,ALB,Europe,83,84,69.41,76.02,69.41,0,0,0,0,Problematic
Algeria,DZA,Arab States,146,146,52.74,64.45,52.74,0,0,1,0,Difficult
@ -119,7 +119,7 @@ Niger,NER,Africa,59,57,71.56,86.14,71.56,0,0,0,0,Problematic
Nigeria,NGA,Africa,120,115,60.31,44.99,62.62,0,0,1,0,Difficult
North Korea,PRK,Asia Pacific,179,180,18.72,48.07,18.72,0,0,0,0,Very Serious
North Macedonia,MKD,Europe,90,92,68.33,100.0,68.33,0,0,0,0,Problematic
Northern Cyprus,CYP,Europe,76,77,70.18,100.0,70.18,0,0,0,0,Problematic
Northern Cyprus,CYN,Europe,76,77,70.18,100.0,70.18,0,0,0,0,Problematic
Norway,NOR,Europe,1,1,93.28,100.0,93.28,0,0,0,0,Good
OECS,,,45,44,76.02,100.0,76.03,0,0,0,0,Satisfactory
Oman,OMN,Middle East,133,135,56.63,100.0,56.63,0,0,0,0,Difficult

1 Country ISO Code ISO_Code Region Position 2021 Position_2021 Position 2020 Position_2020 Global Score Global_Score With Abuses Without Abuses Journalist Killed Journalist_Killed Media Workers Killed Media_Workers_Killed Journalist Imprisoned Journalist_Imprisoned Media Workers Imprisoned Media_Workers_Imprisoned Situation
2 Afghanistan AFG Asia Pacific 122 122 59.81 36.72 65.6 3 3 0 0 Difficult
3 Albania ALB Europe 83 84 69.41 76.02 69.41 0 0 0 0 Problematic
4 Algeria DZA Arab States 146 146 52.74 64.45 52.74 0 0 1 0 Difficult
119 Nigeria NGA Africa 120 115 60.31 44.99 62.62 0 0 1 0 Difficult
120 North Korea PRK Asia Pacific 179 180 18.72 48.07 18.72 0 0 0 0 Very Serious
121 North Macedonia MKD Europe 90 92 68.33 100.0 68.33 0 0 0 0 Problematic
122 Northern Cyprus CYP CYN Europe 76 77 70.18 100.0 70.18 0 0 0 0 Problematic
123 Norway NOR Europe 1 1 93.28 100.0 93.28 0 0 0 0 Good
124 OECS 45 44 76.02 100.0 76.03 0 0 0 0 Satisfactory
125 Oman OMN Middle East 133 135 56.63 100.0 56.63 0 0 0 0 Difficult

@ -1,4 +1,4 @@
Country,ISO Code,Region,Position 2022,Position 2021,Global Score,Politic Score,Economic Score,Legislative Score,Social Score,Security Score,Journalist Killed,Media Workers Killed,Journalist Imprisoned,Media Workers Imprisoned,Situation
Country,ISO_Code,Region,Position_2022,Position_2021,Global_Score,Politic_Score,Economic_Score,Legislative_Score,Social_Score,Security_Score,Journalist_Killed,Media_Workers_Killed,Journalist_Imprisoned,Media_Workers_Imprisoned,Situation
Afghanistan,AFG,Asia Pacific,156,122,38.27,44.65,43.88,42.54,43.33,16.96,0,0,0,0,Very Serious
Albania,ALB,Europe,103,83,56.41,50.55,29.39,68.77,66.6,66.75,0,0,0,0,Problematic
Algeria,DZA,Arab States,134,146,45.53,41.21,32.4,54.17,55.88,44.02,0,0,0,0,Difficult
@ -119,8 +119,9 @@ Niger,NER,Africa,59,59,67.8,62.3,46.73,71.75,76.5,81.69,0,0,2,0,Problematic
Nigeria,NGA,Africa,129,120,46.79,45.15,36.39,53.8,69.83,28.75,0,0,1,0,Difficult
North Korea,PRK,Asia Pacific,180,179,13.92,22.42,0.0,22.81,12.0,12.38,0,0,0,0,Very Serious
North Macedonia,MKD,Europe,57,90,68.44,66.16,43.71,81.29,73.17,77.85,0,0,0,0,Problematic
Northern Cyprus,CYP,Europe,81,76,61.08,56.48,38.78,69.82,60.2,80.14,0,0,0,0,Problematic
Northern Cyprus,CYN,Europe,81,76,61.08,56.48,38.78,69.82,60.2,80.14,0,0,0,0,Problematic
Norway,NOR,Europe,1,1,92.65,94.89,90.38,92.23,93.71,92.03,0,0,0,0,Good
OECS,,,55,45,68.49,62.91,48.37,68.25,79.8,83.13,0,0,0,0,Problematic
Oman,OMN,Middle East,163,133,35.99,32.73,23.98,18.42,45.0,59.82,0,0,0,0,Very Serious
Pakistan,PAK,Asia Pacific,157,145,37.99,39.57,31.92,53.26,47.43,17.75,1,0,0,0,Very Serious
Palestine,PSE,Middle East,170,132,28.98,35.45,15.82,36.4,36.5,20.74,2,0,0,0,Very Serious

1 Country ISO Code ISO_Code Region Position 2022 Position_2022 Position 2021 Position_2021 Global Score Global_Score Politic Score Politic_Score Economic Score Economic_Score Legislative Score Legislative_Score Social Score Social_Score Security Score Security_Score Journalist Killed Journalist_Killed Media Workers Killed Media_Workers_Killed Journalist Imprisoned Journalist_Imprisoned Media Workers Imprisoned Media_Workers_Imprisoned Situation
2 Afghanistan AFG Asia Pacific 156 122 38.27 44.65 43.88 42.54 43.33 16.96 0 0 0 0 Very Serious
3 Albania ALB Europe 103 83 56.41 50.55 29.39 68.77 66.6 66.75 0 0 0 0 Problematic
4 Algeria DZA Arab States 134 146 45.53 41.21 32.4 54.17 55.88 44.02 0 0 0 0 Difficult
119 Nigeria NGA Africa 129 120 46.79 45.15 36.39 53.8 69.83 28.75 0 0 1 0 Difficult
120 North Korea PRK Asia Pacific 180 179 13.92 22.42 0.0 22.81 12.0 12.38 0 0 0 0 Very Serious
121 North Macedonia MKD Europe 57 90 68.44 66.16 43.71 81.29 73.17 77.85 0 0 0 0 Problematic
122 Northern Cyprus CYP CYN Europe 81 76 61.08 56.48 38.78 69.82 60.2 80.14 0 0 0 0 Problematic
123 Norway NOR Europe 1 1 92.65 94.89 90.38 92.23 93.71 92.03 0 0 0 0 Good
124 OECS 55 45 68.49 62.91 48.37 68.25 79.8 83.13 0 0 0 0 Problematic
125 Oman OMN Middle East 163 133 35.99 32.73 23.98 18.42 45.0 59.82 0 0 0 0 Very Serious
126 Pakistan PAK Asia Pacific 157 145 37.99 39.57 31.92 53.26 47.43 17.75 1 0 0 0 Very Serious
127 Palestine PSE Middle East 170 132 28.98 35.45 15.82 36.4 36.5 20.74 2 0 0 0 Very Serious

@ -0,0 +1,8 @@
-- psql -h londres -d dblolaborie -U lolaborie -W
SELECT p.nomR,avg(s.gscore) as Moyenne_Position_Region
FROM Statistique s, Pays p, Region r
WHERE s.codeP = p.code AND p.nomR = r.nom AND s.annee = '2021'
GROUP BY p.nomR;

@ -0,0 +1,113 @@
import pandas as pd
import psycopg2 as pg
import subprocess as sp
import matplotlib.pyplot as plt
# psql -h londres -d dblolaborie -U lolaborie -W
data = pd.read_csv(r'Report_2022.csv')
df = pd.DataFrame(data)
df2 = df.drop_duplicates()
df2 = df2.dropna()
data = pd.read_csv(r'Report_2021.csv')
df = pd.DataFrame(data)
df2021 = df.drop_duplicates()
df2021 = df.dropna()
data = pd.read_csv(r'Report_2020.csv')
df = pd.DataFrame(data)
df2020 = df.drop_duplicates()
df2020 = df.dropna()
regions = []
for row in df2.itertuples():
if row.Region not in regions:
regions.append(row.Region)
sp.run(["stty", "-echo"])
mdp = input("Le mot de passe stp : ")
sp.run(["stty", "echo"])
co = None
print("Connexion...\n")
try:
# Connexion à la base
# Attention ! pensez à remplacer dblogin , login et mot_de_passe
#avec vos informations
co = pg.connect(host='londres',
database ='dblolaborie',
user='lolaborie',
password = mdp)
curs = co.cursor()
curs.execute('''DROP TABLE IF EXISTS Pays,Region,Annee,Statistique CASCADE;''')
curs.execute('''CREATE TABLE Region(
nom varchar(30) PRIMARY KEY);''')
curs.execute('''CREATE TABLE Pays(
code varchar(3) PRIMARY KEY,
nom varchar(30) NOT NULL,
nomR varchar(30) NOT NULL REFERENCES Region);''')
curs.execute('''CREATE TABLE Annee(
annee varchar(4) PRIMARY KEY);''')
curs.execute('''CREATE TABLE Statistique(
annee varchar(4) NOT NULL REFERENCES Annee,
codeP varchar(3) NOT NULL REFERENCES Pays,
position numeric NOT NULL,
gscore numeric,
pscore numeric,
escore numeric,
lscore numeric,
soscore numeric,
sescore numeric,
jkill numeric NOT NULL,
mkill numeric NOT NULL,
jprison numeric NOT NULL,
mprison numeric NOT NULL,
situation varchar(30) NOT NULL,
PRIMARY KEY(annee,codeP));''')
print("Tables crées !\n")
curs.execute('''INSERT INTO Annee VALUES('2022');''')
curs.execute('''INSERT INTO Annee VALUES('2021');''')
curs.execute('''INSERT INTO Annee VALUES('2020');''')
print("Années insérées !")
for r in regions:
curs.execute('''INSERT INTO Region VALUES(%s);''',
(r, ))
print("Régions insérées !")
for row in df2.itertuples():
curs.execute('''INSERT INTO Pays VALUES(%s,%s,%s);''',
(row.ISO_Code, row.Country, row.Region))
curs.execute('''INSERT INTO Statistique VALUES('2022',%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s);''',
(row.ISO_Code,row.Position_2022,row.Global_Score,row.Politic_Score,row.Economic_Score,row.Legislative_Score,row.Social_Score,row.Security_Score,row.Journalist_Killed,row.Media_Workers_Killed,row.Journalist_Imprisoned,row.Media_Workers_Imprisoned,row.Situation))
for row in df2021.itertuples():
curs.execute('''INSERT INTO Statistique VALUES('2021',%s,%s,%s,NULL,NULL,NULL,NULL,NULL,%s,%s,%s,%s,%s);''',
(row.ISO_Code,row.Position_2021,row.Global_Score,row.Journalist_Killed,row.Media_Workers_Killed,row.Journalist_Imprisoned,row.Media_Workers_Imprisoned,row.Situation))
for row in df2020.itertuples():
curs.execute('''INSERT INTO Statistique VALUES('2020',%s,%s,%s,NULL,NULL,NULL,NULL,NULL,%s,%s,%s,%s,%s);''',
(row.ISO_Code,row.Position_2020,row.Global_Score,row.Journalist_Killed,row.Media_Workers_Killed,row.Journalist_Imprisoned,row.Media_Workers_Imprisoned,row.Situation))
print("Insertions terminées !")
co.commit()
curs.close()
# Affichage du message d'erreur en cas de probl ème de connexion
except(Exception, pg.DatabaseError) as error :
print(error)
# Attention ! Toujours fermer la connexion lorsqu 'on en a plus besoin
finally:
if co is not None:
co.close()
Loading…
Cancel
Save