Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
import pandas as pd
import random
# Liste de noms et prénoms
noms = ['Smith', 'Johnson', 'Williams', 'Jones', 'Brown', 'Davis', 'Miller', 'Wilson', 'Moore', 'Taylor',
'Anderson', 'Thomas', 'Jackson', 'White', 'Harris', 'Martin', 'Thompson', 'Garcia', 'Martinez', 'Robinson',
'Clark', 'Rodriguez', 'Lewis', 'Lee', 'Walker', 'Hall', 'Allen', 'Young', 'Hernandez', 'King',
'Wright', 'Lopez', 'Hill', 'Scott', 'Green', 'Adams', 'Baker', 'Gonzalez', 'Nelson', 'Carter',
'Mitchell', 'Perez', 'Roberts', 'Turner', 'Phillips', 'Campbell', 'Parker', 'Evans', 'Edwards', 'Collins',
'Stewart', 'Sanchez', 'Morris', 'Rogers', 'Reed', 'Cook', 'Morgan', 'Bell', 'Murphy', 'Bailey',
'Rivera', 'Cooper', 'Richardson', 'Cox', 'Howard', 'Ward', 'Torres', 'Peterson', 'Gray', 'Ramirez',
'James', 'Watson', 'Brooks', 'Kelly', 'Sanders', 'Price', 'Bennett', 'Wood', 'Barnes', 'Ross',
'Henderson', 'Coleman', 'Jenkins', 'Perry', 'Powell', 'Long', 'Patterson', 'Hughes', 'Flores', 'Washington',
'Butler', 'Simmons', 'Foster', 'Gonzales', 'Bryant', 'Alexander', 'Russell', 'Griffin', 'Diaz', 'Hayes',
'Myers', 'Ford', 'Hamilton', 'Graham', 'Sullivan', 'Wallace', 'Woods', 'Cole', 'West', 'Jordan',
'Owens', 'Reynolds', 'Fisher', 'Ellis', 'Harrison', 'Gibson', 'McDonald', 'Cruz', 'Marshall', 'Ortiz',
'Gomez', 'Murray', 'Freeman', 'Wells', 'Webb', 'Simpson', 'Stevens', 'Tucker', 'Porter', 'Hunter',
'Hicks', 'Crawford', 'Henry', 'Boyd', 'Mason', 'Morales', 'Kennedy', 'Warren', 'Dixon', 'Ramos',
'Reyes', 'Burns', 'Gordon', 'Shaw', 'Holmes', 'Rice', 'Robertson', 'Hunt', 'Black', 'Daniels',
'Palmer', 'Mills', 'Nichols', 'Grant', 'Knight', 'Ferguson', 'Rose', 'Stone', 'Hawkins', 'Dunn',
'Perkins', 'Hudson', 'Spencer', 'Gardner', 'Stephens', 'Payne', 'Pierce', 'Berry', 'Matthews', 'Arnold',
'Wagner', 'Willis', 'Ray', 'Watkins', 'Olson', 'Carroll', 'Duncan', 'Snyder', 'Hart', 'Cunningham',
'Bradley', 'Lane', 'Andrews', 'Ruiz', 'Harper', 'Fox', 'Riley', 'Armstrong', 'Carpenter', 'Weaver',
'Greene', 'Lawrence', 'Elliott', 'Chavez', 'Sims', 'Austin', 'Peters', 'Kelley', 'Franklin', 'Lawson',
'Fields', 'Gutierrez', 'Ryan', 'Schmidt', 'Carr', 'Vasquez', 'Castillo', 'Wheeler', 'Chapman', 'Oliver',
'Montgomery', 'Richards', 'Williamson', 'Johnston', 'Banks', 'Meyer', 'Bishop', 'McCoy', 'Howell', 'Alvarez',
'Morrison', 'Hansen', 'Fernandez', 'Garza', 'Harvey', 'Little', 'Burton', 'Stanley', 'Nguyen', 'George',
'Jacobs', 'Reid', 'Kim', 'Fuller', 'Lynch', 'Dean', 'Gilbert', 'Garrett', 'Romero', 'Welch']
prenoms = ['Emma', 'Liam', 'Olivia', 'Noah', 'Ava', 'Isabella', 'Sophia', 'Jackson', 'Mia', 'Lucas',
'Aiden', 'Ethan', 'Luna', 'Mason', 'Harper', 'Evelyn', 'Oliver', 'Aria', 'Amelia', 'Caden',
'Grayson', 'Charlotte', 'Chloe', 'Ella', 'Sebastian', 'Carter', 'Abigail', 'Scarlett', 'Madison',
'Lily', 'Avery', 'Ella', 'Aubrey', 'Mila', 'Layla', 'Riley', 'Zoe', 'Sofia', 'Jackson', 'Liam',
'Leah', 'Zoe', 'Henry', 'Gabriel', 'Grace', 'Hannah', 'Mila', 'Alexa', 'Eva', 'Liam', 'Mia',
'Logan', 'Benjamin', 'Emily', 'Nora', 'Elijah', 'Lucy', 'Owen', 'Elizabeth', 'Stella', 'Levi',
'William', 'Lily', 'Zoey', 'Parker', 'Brooklyn', 'Samuel', 'Luke', 'Madelyn', 'Eleanor', 'Nathan',
'Isaac', 'Ryan', 'Ariana', 'Addison', 'Scarlett', 'Julian', 'Natalie', 'Victoria', 'Adam', 'Alexis',
'Aaron', 'Aaliyah', 'Robert', 'Samantha', 'Christopher', 'Hazel', 'Serenity', 'Jordan', 'Leah', 'Chase',
'Lillian', 'Liam', 'Skylar', 'Bella', 'Zachary', 'Caleb', 'Tyler', 'Connor', 'Eli', 'Aaliyah',
'Ezekiel', 'Eva', 'Landon', 'Grace', 'Makayla', 'Nicholas', 'Natalie', 'Nathan', 'Avery', 'Cameron',
'Hudson', 'Violet', 'Claire', 'Gavin', 'Eva', 'Zachary', 'Alexa', 'Brooklyn', 'Kylie', 'Peyton',
'Emma', 'John', 'Aubrey', 'Carter', 'Mila', 'Elena', 'Paisley', 'Grayson', 'Hailey', 'Elijah',
'Ellie', 'Julian', 'Adrian', 'Aria', 'Liliana', 'Bentley', 'Kinsley', 'Savannah', 'Eliana', 'Sofia',
'Liam', 'Ella', 'Evelyn', 'Avery', 'Austin', 'Scarlett', 'Leah', 'Aiden', 'Audrey', 'Amelie',
'Julian', 'Mila', 'Olivia', 'Anthony', 'Caleb', 'Zoe', 'Autumn', 'Samantha', 'Aria', 'Cooper',
'Eva', 'Charlie', 'Madison', 'Landon', 'Penelope', 'Kaylee', 'Lily', 'Ryder', 'Hannah', 'Maya',
'Christopher', 'Eleanor', 'Levi', 'Aubree', 'Emma', 'Sofia', 'Evan', 'Ella', 'Gabriel', 'Zachary',
'Taylor', 'Liam', 'Makayla', 'Zoe', 'Oliver', 'Isaiah', 'Brooklyn', 'Lily', 'Victoria', 'Cameron',
'Madison', 'Eva', 'Gabriel', 'Zoe', 'Brooklyn', 'Sophie', 'Ella', 'Logan', 'Madison', 'Julian',
'Alexis', 'Landon', 'Grace', 'Lucas', 'Aria', 'Aaliyah', 'Adrian', 'Riley', 'Nora', 'Isabella',
'Eva', 'Layla', 'Aiden', 'Amelia', 'Chloe', 'Levi', 'Lillian', 'Liam', 'Zoey', 'Hazel', 'Carter',
'Grace', 'Peyton', 'Julian', 'Eliana', 'Eva', 'Harper', 'Henry', 'Olivia', 'Lily', 'Liam', 'Abigail']
annees = ['BAC1', 'BAC2', 'BAC3', 'MA1', 'MA2']
place_of_birth = ['Mons', 'Charleroi', 'Tournai', 'La Louvière', 'Namur', 'Nivelles', 'Wavre', "Braine-l'Alleud", 'Waterloo', 'Louvain-la-Neuve',
'Soignies', 'Thuin', 'Binche', 'Ath', 'Enghien', 'Jodoigne', 'Gembloux', 'Fleurus', 'Sambreville', 'Châtelet',
'Marche-en-Famenne', 'Dinant', 'Ciney', 'Philippeville', 'Huy', 'Andenne', 'Ottignies-Louvain-la-Neuve', 'Hannut', 'Waremme', 'Fosses-la-Ville',
'Tubize', 'Nivelles', 'Genappe', 'Jodoigne', 'Ottignies', 'La Hulpe', 'Court-Saint-Étienne', 'Rebecq', 'Wavre', 'Waterloo',
'Lasne', 'Rixensart', 'Rosières', 'Ittre', 'Braine-le-Château', 'Chaumont-Gistoux', 'Walhain', 'Mont-Saint-Guibert', 'Beauvechain', 'Hélécine']
noms_rues = ['Rue de la Liberté', 'Avenue des Roses', 'Chaussée de Bruxelles', 'Rue du Commerce', 'Avenue du Parc', 'Rue Saint-Pierre', 'Chemin des Cerisiers', 'Boulevard des Étoiles', 'Avenue de la Gare', 'Rue des Champs',
'Chaussée de Namur', 'Rue de la Paix', 'Avenue des Lilas', 'Rue de la Fontaine', 'Chemin du Moulin', 'Boulevard des Arts', 'Avenue des Mésanges', 'Rue des Orangers', 'Chaussée de Liège', 'Rue de l\'Église',
'Avenue du Lac', 'Rue des Violettes', 'Chemin des Peupliers', 'Boulevard de la Mer', 'Rue des Platanes', 'Avenue des Acacias', 'Chaussée de Mons', 'Rue de la Rivière', 'Avenue du Soleil', 'Rue des Écoles',
'Chemin des Pommiers', 'Boulevard des Montagnes', 'Rue des Trois Fontaines', 'Avenue des Cèdres', 'Chaussée de Charleroi', 'Rue du Théâtre', 'Boulevard des Papillons', 'Rue des Primevères', 'Avenue des Charmes', 'Chemin des Saules',
'Rue du Palais', 'Avenue de la Plage', 'Chaussée de Waterloo', 'Rue des Amandiers', 'Boulevard du Jardin', 'Avenue des Coquelicots', 'Rue des Moulins', 'Chemin des Roses', 'Boulevard de la Forêt', 'Rue des Iris']
genre = ['M', 'F', 'O']
campus_loc = ["Louvain-la-Neuve", "Mons"]
coursBAC1 = ("Anglais 1", "Fondements du droit public", "Fondements du droit de l'entreprise", "Economie", "Espagnol 1", "Comptabilité", "Informatique de gestion", "Mathématiques de gestion 1", "Statistiques et probabilités", "Pilosophie", "Psychologie", "Sociologie", "Séminaire de travail universitaire en gestion")
coursBAC2 = ("Anglais 2", "Droit de l'entreprise", "Macroéconomie", "Microéconomie", "Espagnol 2", "Marketing", "Production", "Informatique et algorithmique", "Finance", "Inférences statistiques", "Mathématiques de gestion 2", "Technologies industrielles")
coursBAC3 = ("Anglais 3", "Economie industrielle", "Espagnol 3", "Séminaire : organisations et transformation digitale", "Management humain", "Projet entrepreneurial", "Comptabilité et contrôle de gestion", "Gestion de données", "Coding project", "Econométrie", "Recherche opérationnelle", "Optimization", "Séminaire : organisation et mutations sociales", "Questions de sciences religieuses")
coursMA1 = ("Advanced English 1", "Español avanzado 1", "Data analytics", "Projet quantitatif et gestion de projet", "Data Mining", "Nouvelles technologies et pratiques émergentes", "Web mining", "Machine learning", "Quantitative Decision Making", "Recommender Systems", "Pilotage stratégique de l'entreprise", "Séminaire on Current Managerial Issues")
coursMA2 = ("Advanced English 2", "Español avanzado 1", "Responsabilité sociétale de l'entreprise","Integrated Information Systems", "Mémoire", "Séminaire d'accompagnement du mémoire")
# Générer des combinaisons aléatoires de noms et prénoms pour plus de 1000 personnes
donnees = []
for _ in range(100): # générer des données
# nom de la personnes
nom = random.choice(noms)
# prenom de la personnes
prenom = random.choice(prenoms)
# année de cours
annee = random.choice(annees)
# ville de naissance de la personne
ville_naissance = random.choice(place_of_birth)
# attribuer un numero de téléphone à la personne
numero_tel = []
n = f"{random.randint(10000000, 99999999):08d}"
if n not in numero_tel :
numero_tel.append(n)
numero = f"0{n[:2]}/{n[2:4]}.{n[4:6]}.{n[6:]}"
# endroit où habite la personne
commune = random.choice(place_of_birth)
rue = random.choice(noms_rues)
numero_maison = random.randint(1, 200)
adresse = f"{rue} {numero_maison}, {commune}"
#attribution du sexe d'une personne
genre_de_personne = random.choice(genre)
#email de la personne
email = f"{nom}{'.'}{prenom}{'@student.uclouvain.be'}"
email_format = email.lower()
#attribution des campus aux élèves
campus = random.choice(campus_loc)
# date de naissance sachant que l'on est en 2023 donc qqn de 17 ans ne peut pas se trouver en master
if annee == 'BAC1':
annee_naiss = 2005
elif annee == 'BAC2':
annee_naiss = 2004
elif annee == 'BAC3':
annee_naiss = 2003
elif annee == 'MA1':
annee_naiss = 2002
else:
annee_naiss = 2001
mois_naiss = random.randint(1, 12)
jour_naiss = random.randint(1, 28)
annee_de_naissance = f"{jour_naiss}/{mois_naiss}/{annee_naiss}"
# attribution du matricule
consonnes_nom = ''.join([c for c in nom if c.lower() not in 'aeiou'])[:3]
consonnes_prenom = ''.join([c for c in prenom if c.lower() not in 'aeiou'])[:2]
derniere_consonne_nom = ''.join([c for c in prenom if c.lower() not in 'aeiou']).lower()[-1] # ne sait pas si c'est la consonne du prénom ou du nom
annee_naissance_str = str(annee_naiss)[-2:]
entier_aleatoire = random.randint(0, 10)
matricule = f"{consonnes_nom}{consonnes_prenom}{derniere_consonne_nom}{annee_naissance_str}{entier_aleatoire}"
matricule = matricule.lower()
#attribution des notes aléatoirement
notes = {}
if annee == 'MA2':
for cours in coursBAC1 + coursBAC2 + coursBAC3 + coursMA1:
notes[cours] = random.randint(10, 20) # l'éléve a dû réussir ces cours pour pouvoir avoir acces en MA2
for cours in coursMA2 :
notes[cours] = random.randint(0, 20) # l'éléve pourrait avoir eu entre 0 et 20
elif annee == 'MA1':
for cours in coursBAC1 + coursBAC2 + coursBAC3 :
notes[cours] = random.randint(10, 20)
for cours in coursMA1 :
notes[cours] = random.randint(0, 20)
elif annee == 'BAC3':
for cours in coursBAC1 + coursBAC2 :
notes[cours] = random.randint(10, 20)
for cours in coursBAC3 :
notes[cours] = random.randint(0, 20)
elif annee == 'BAC2':
for cours in coursBAC1 :
notes[cours] = random.randint(10, 20)
for cours in coursBAC2 :
notes[cours] = random.randint(0, 20)
else:
for cours in coursBAC1:
notes[cours] = random.randint(0, 20)
donnees.append({"Name": nom, "Surname": prenom, "Academic Year" : annee, "Place of Birth" : ville_naissance, "Telephone": numero, "Address": adresse, "Genre" : genre_de_personne, "Email" : email_format, "Campus" : campus, "Date of Birth" : annee_de_naissance, "Matricule" : matricule, **notes})
# génération de données qui ne peuvent pas se ressembler
# Créer un DataFrame pandas
df = pd.DataFrame(donnees)
# Enregistrer le DataFrame dans un fichier Excel
df.to_excel("Data_Base.xlsx", index=False)