parent
3df491f569
commit
e0cbe397eb
|
|
|
@ -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…
Reference in new issue