├── README.md ├── job-64bd250cb0899621267166.csv ├── job.sql └── BD Analyse des opportunités d'emploi.ipynb /README.md: -------------------------------------------------------------------------------- 1 | # Analyse-des-opportunites-d-emploi -------------------------------------------------------------------------------- /job-64bd250cb0899621267166.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fatimazahrae-bh/Analyse-des-opportunites-d-emploi/HEAD/job-64bd250cb0899621267166.csv -------------------------------------------------------------------------------- /job.sql: -------------------------------------------------------------------------------- 1 | create database emploi 2 | 3 | use emploi 4 | 5 | 6 | 7 | CREATE TABLE Company ( 8 | id_company INT, 9 | company_name VARCHAR(500), 10 | PRIMARY KEY (id_company) 11 | ); 12 | 13 | CREATE TABLE Job_Company ( 14 | id_job INT, 15 | id_company INT, 16 | FOREIGN KEY (id_company) REFERENCES Company(id_company), 17 | FOREIGN KEY (id_job) REFERENCES Job(id_job) 18 | ); 19 | 20 | CREATE TABLE Requirements ( 21 | id_requirement INT, 22 | requirement_company VARCHAR(500), 23 | PRIMARY KEY (id_requirement) 24 | ); 25 | 26 | CREATE TABLE Job ( 27 | id_job INT, 28 | job_title VARCHAR(255), 29 | salary FLOAT, 30 | plus BIT, 31 | Asterisk BIT, 32 | level_exp VARCHAR(100) CHECK (level_exp IN ('Entry-level', 'Mid-level', 'Executive-level','Senior-level', 'Not specified')) 33 | PRIMARY KEY (id_job) 34 | ); 35 | 36 | CREATE TABLE Job_Requirements ( 37 | id_job INT, 38 | id_requirement INT, 39 | FOREIGN KEY (id_job) REFERENCES Job(id_job), 40 | FOREIGN KEY (id_requirement) REFERENCES Requirements(id_requirement) 41 | ); 42 | 43 | CREATE TABLE Facilities ( 44 | id_facilities INT, 45 | facilities VARCHAR(255), 46 | PRIMARY KEY (id_facilities) 47 | ); 48 | 49 | CREATE TABLE Job_Facilities ( 50 | id_job INT, 51 | id_facilities INT, 52 | FOREIGN KEY (id_job) REFERENCES Job(id_job), 53 | FOREIGN KEY (id_facilities) REFERENCES Facilities(id_facilities) 54 | ); 55 | 56 | CREATE TABLE Requirements ( 57 | id_country INT, 58 | country VARCHAR(255), 59 | PRIMARY KEY (id_country) 60 | ); 61 | 62 | 63 | CREATE TABLE Job_Country ( 64 | id_job INT, 65 | id_country INT, 66 | FOREIGN KEY (id_job) REFERENCES Job(id_job), 67 | FOREIGN KEY (id_country) REFERENCES Country(id_country) 68 | ); 69 | 70 | 71 | 72 | 73 | 74 | select * from Company 75 | select * from Requirements 76 | select * from Job 77 | select * from Job_Requirements 78 | select * from Facilities 79 | select * from Job_Facilities 80 | 81 | 82 | select * from Job_Country 83 | select * from Job_Company 84 | 85 | 86 | -------------------------------------------------------------------------------- /BD Analyse des opportunités d'emploi.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 2, 6 | "id": "6de86a62", 7 | "metadata": {}, 8 | "outputs": [], 9 | "source": [ 10 | "import pandas as pd" 11 | ] 12 | }, 13 | { 14 | "cell_type": "code", 15 | "execution_count": 3, 16 | "id": "1d264103", 17 | "metadata": { 18 | "scrolled": true 19 | }, 20 | "outputs": [ 21 | { 22 | "data": { 23 | "text/html": [ 24 | "
\n", 25 | "\n", 38 | "\n", 39 | " \n", 40 | " \n", 41 | " \n", 42 | " \n", 43 | " \n", 44 | " \n", 45 | " \n", 46 | " \n", 47 | " \n", 48 | " \n", 49 | " \n", 50 | " \n", 51 | " \n", 52 | " \n", 53 | " \n", 54 | " \n", 55 | " \n", 56 | " \n", 57 | " \n", 58 | " \n", 59 | " \n", 60 | " \n", 61 | " \n", 62 | " \n", 63 | " \n", 64 | " \n", 65 | " \n", 66 | " \n", 67 | " \n", 68 | " \n", 69 | " \n", 70 | " \n", 71 | " \n", 72 | " \n", 73 | " \n", 74 | " \n", 75 | " \n", 76 | " \n", 77 | " \n", 78 | " \n", 79 | " \n", 80 | " \n", 81 | " \n", 82 | " \n", 83 | " \n", 84 | " \n", 85 | " \n", 86 | " \n", 87 | " \n", 88 | " \n", 89 | " \n", 90 | " \n", 91 | " \n", 92 | " \n", 93 | " \n", 94 | " \n", 95 | " \n", 96 | " \n", 97 | " \n", 98 | " \n", 99 | " \n", 100 | " \n", 101 | " \n", 102 | " \n", 103 | " \n", 104 | " \n", 105 | " \n", 106 | " \n", 107 | " \n", 108 | " \n", 109 | " \n", 110 | " \n", 111 | " \n", 112 | " \n", 113 | " \n", 114 | " \n", 115 | " \n", 116 | " \n", 117 | " \n", 118 | " \n", 119 | " \n", 120 | " \n", 121 | " \n", 122 | " \n", 123 | " \n", 124 | " \n", 125 | " \n", 126 | " \n", 127 | " \n", 128 | " \n", 129 | " \n", 130 | " \n", 131 | " \n", 132 | " \n", 133 | " \n", 134 | " \n", 135 | " \n", 136 | " \n", 137 | " \n", 138 | " \n", 139 | " \n", 140 | " \n", 141 | " \n", 142 | " \n", 143 | " \n", 144 | " \n", 145 | " \n", 146 | " \n", 147 | " \n", 148 | " \n", 149 | " \n", 150 | " \n", 151 | " \n", 152 | " \n", 153 | " \n", 154 | " \n", 155 | " \n", 156 | " \n", 157 | " \n", 158 | " \n", 159 | " \n", 160 | " \n", 161 | " \n", 162 | " \n", 163 | " \n", 164 | " \n", 165 | " \n", 166 | " \n", 167 | " \n", 168 | " \n", 169 | " \n", 170 | " \n", 171 | " \n", 172 | " \n", 173 | " \n", 174 | " \n", 175 | "
CompanyJob TitleLocationJob TypeExperience levelSalaryRequirment of the companyFacilities
0SGSClinical Data AnalystRichardson, TX, United StatesFull TimeEntry-level48K+ *Computer Science,Data quality,Genetics,Mathema...,,,,
1OcorianAML/CFT & Data AnalystEbène, MauritiusFull TimeEntry-level48K+ *Agile,Data management,Finance,Security,,,,,,
2CricutMachine Learning EngineerSouth Jordan, UT, United StatesFull TimeNaN90K+ *Agile,Architecture,AWS,Computer Science,Comput...Career development,,,,
3Bosch GroupApplication Developer & Data AnalystNonantola, ItalyFull TimeEntry-level48K+ *Engineering,Industrial,Oracle,Power BI,R,R&D,,,,
4Publicis GroupeData Engineer Full time (Public Sector) USAArlington, VA, United StatesFull TimeMid-level108K+AWS,Azure,Computer Science,Consulting,Dataflow...Flex hours,Flex vacation,Parental leave,Unlimi...
...........................
3193Western DigitalData Scientist - New College GraduateBiñan, PhilippinesFull TimeEntry-level39K+ *APIs,Clustering,Computer Science,Data visualiz...Career development,,,,
3194ExperianCloud Data AnalystHeredia, Costa RicaFull TimeSenior-level92K+ *AWS,Big Data,Computer Science,GCP,Snowflake,SQLEquity,Medical leave,Salary bonus,,
3195Locus RoboticsRobotics Engineer, SensorsWilmington, MA, United StatesFull TimeSenior-level62K+ *E-commerce,Engineering,Linux,Python,Robotics,S...,,,,
3196ATB FinancialData ScientistEdmonton, Alberta, CanadaFull TimeEntry-level39K+ *Computer Science,Data Analytics,Data Mining,Ec...Career development,Startup environment,,,
3197ShippeoSenior Data EngineerParis, FranceFull TimeSenior-level115K+ *Airflow,Architecture,BigQuery,CI/CD,Computer S...,,,,
\n", 176 | "

3198 rows × 8 columns

\n", 177 | "
" 178 | ], 179 | "text/plain": [ 180 | " Company Job Title \\\n", 181 | "0 SGS Clinical Data Analyst \n", 182 | "1 Ocorian AML/CFT & Data Analyst \n", 183 | "2 Cricut Machine Learning Engineer \n", 184 | "3 Bosch Group Application Developer & Data Analyst \n", 185 | "4 Publicis Groupe Data Engineer Full time (Public Sector) USA \n", 186 | "... ... ... \n", 187 | "3193 Western Digital Data Scientist - New College Graduate \n", 188 | "3194 Experian Cloud Data Analyst \n", 189 | "3195 Locus Robotics Robotics Engineer, Sensors \n", 190 | "3196 ATB Financial Data Scientist \n", 191 | "3197 Shippeo Senior Data Engineer \n", 192 | "\n", 193 | " Location Job Type Experience level Salary \\\n", 194 | "0 Richardson, TX, United States Full Time Entry-level 48K+ * \n", 195 | "1 Ebène, Mauritius Full Time Entry-level 48K+ * \n", 196 | "2 South Jordan, UT, United States Full Time NaN 90K+ * \n", 197 | "3 Nonantola, Italy Full Time Entry-level 48K+ * \n", 198 | "4 Arlington, VA, United States Full Time Mid-level 108K+ \n", 199 | "... ... ... ... ... \n", 200 | "3193 Biñan, Philippines Full Time Entry-level 39K+ * \n", 201 | "3194 Heredia, Costa Rica Full Time Senior-level 92K+ * \n", 202 | "3195 Wilmington, MA, United States Full Time Senior-level 62K+ * \n", 203 | "3196 Edmonton, Alberta, Canada Full Time Entry-level 39K+ * \n", 204 | "3197 Paris, France Full Time Senior-level 115K+ * \n", 205 | "\n", 206 | " Requirment of the company \\\n", 207 | "0 Computer Science,Data quality,Genetics,Mathema... \n", 208 | "1 Agile,Data management,Finance,Security,, \n", 209 | "2 Agile,Architecture,AWS,Computer Science,Comput... \n", 210 | "3 Engineering,Industrial,Oracle,Power BI,R,R&D \n", 211 | "4 AWS,Azure,Computer Science,Consulting,Dataflow... \n", 212 | "... ... \n", 213 | "3193 APIs,Clustering,Computer Science,Data visualiz... \n", 214 | "3194 AWS,Big Data,Computer Science,GCP,Snowflake,SQL \n", 215 | "3195 E-commerce,Engineering,Linux,Python,Robotics,S... \n", 216 | "3196 Computer Science,Data Analytics,Data Mining,Ec... \n", 217 | "3197 Airflow,Architecture,BigQuery,CI/CD,Computer S... \n", 218 | "\n", 219 | " Facilities \n", 220 | "0 ,,,, \n", 221 | "1 ,,,, \n", 222 | "2 Career development,,,, \n", 223 | "3 ,,,, \n", 224 | "4 Flex hours,Flex vacation,Parental leave,Unlimi... \n", 225 | "... ... \n", 226 | "3193 Career development,,,, \n", 227 | "3194 Equity,Medical leave,Salary bonus,, \n", 228 | "3195 ,,,, \n", 229 | "3196 Career development,Startup environment,,, \n", 230 | "3197 ,,,, \n", 231 | "\n", 232 | "[3198 rows x 8 columns]" 233 | ] 234 | }, 235 | "execution_count": 3, 236 | "metadata": {}, 237 | "output_type": "execute_result" 238 | } 239 | ], 240 | "source": [ 241 | "df = pd.read_csv(\"job.csv\", encoding='latin1')\n", 242 | "df" 243 | ] 244 | }, 245 | { 246 | "cell_type": "code", 247 | "execution_count": 4, 248 | "id": "02a29710", 249 | "metadata": {}, 250 | "outputs": [], 251 | "source": [ 252 | "import pyodbc\n" 253 | ] 254 | }, 255 | { 256 | "cell_type": "code", 257 | "execution_count": null, 258 | "id": "f98f91b7", 259 | "metadata": {}, 260 | "outputs": [], 261 | "source": [ 262 | "\n", 263 | "# Connexion à la base de données SQL Server\n", 264 | "conn = pyodbc.connect(\"Driver={SQL Server};Server=DESKTOP-MLS7M99\\SQLEXPRESS;Database=emploi;Trusted_Connection=yes;\")\n", 265 | "cursor = conn.cursor()\n", 266 | "\n", 267 | "cursor.execute(\"SELECT @@version;\")\n", 268 | "row = cursor.fetchone()\n", 269 | "while row: \n", 270 | " print(row[0])\n", 271 | " row = cursor.fetchone()\n" 272 | ] 273 | }, 274 | { 275 | "cell_type": "code", 276 | "execution_count": null, 277 | "id": "332f545e", 278 | "metadata": {}, 279 | "outputs": [], 280 | "source": [] 281 | }, 282 | { 283 | "cell_type": "code", 284 | "execution_count": null, 285 | "id": "08255f30", 286 | "metadata": {}, 287 | "outputs": [], 288 | "source": [] 289 | }, 290 | { 291 | "cell_type": "code", 292 | "execution_count": null, 293 | "id": "753102a2", 294 | "metadata": {}, 295 | "outputs": [], 296 | "source": [ 297 | "#create table job \n", 298 | "job_table = df[[\"Job Title\", \"Salary\", \"Plus\", \"Asterisk\", \"Experience level\"]].reset_index(drop=True)\n", 299 | "job_table.insert(0, \"id_job\", range(1, len(job_table) + 1))\n", 300 | "display(job_table)" 301 | ] 302 | }, 303 | { 304 | "cell_type": "code", 305 | "execution_count": null, 306 | "id": "031ded24", 307 | "metadata": {}, 308 | "outputs": [], 309 | "source": [ 310 | "# Définir la fonction pour insérer les données de la table \"Job\" dans la base de données\n", 311 | "def insert_job_data(cursor, job_data):\n", 312 | " for index, row in job_data.iterrows():\n", 313 | " cursor.execute(\"INSERT INTO Job (id_job, job_title, salary, plus, Asterisk, level_exp) VALUES (?, ?, ?, ?, ?, ?)\",\n", 314 | " row[\"id_job\"], row[\"Job Title\"], row[\"Salary\"], row[\"Plus\"], row[\"Asterisk\"], row[\"Experience level\"])\n", 315 | " conn.commit()\n", 316 | "\n", 317 | "# Appel de la fonction pour insérer les données dans la table \"Job\"\n", 318 | "insert_job_data(cursor, job_table)\n", 319 | "\n", 320 | "# Fermeture de la connexion à la base de données\n" 321 | ] 322 | }, 323 | { 324 | "cell_type": "code", 325 | "execution_count": null, 326 | "id": "621b8192", 327 | "metadata": {}, 328 | "outputs": [], 329 | "source": [ 330 | "# Insertion des données dans la table \"Company\"\n", 331 | "company_table = df[[\"Company\"]].drop_duplicates().reset_index(drop=True)\n", 332 | "\n", 333 | "company_table.insert(0, \"id_company\", range(1, len(company_table) + 1))\n", 334 | "display(company_table)" 335 | ] 336 | }, 337 | { 338 | "cell_type": "code", 339 | "execution_count": null, 340 | "id": "11943ff2", 341 | "metadata": {}, 342 | "outputs": [], 343 | "source": [ 344 | "# Insertion des données de la table \"Company\" dans la base de donnees\n", 345 | "\n", 346 | "def insert_company_data(cursor, company_data):\n", 347 | " for index, row in company_data.iterrows():\n", 348 | " cursor.execute(\"INSERT INTO Company (id_company, company_name) VALUES (?, ?)\", row[\"id_company\"], row[\"Company\"])\n", 349 | " conn.commit()\n", 350 | "\n", 351 | " # Appel de la fonction pour insérer les données dans la table \"Company\"\n", 352 | "insert_company_data(cursor, company_table)\n", 353 | "\n", 354 | "# Fermeture de la connexion à la base de données\n", 355 | "conn.close()" 356 | ] 357 | }, 358 | { 359 | "cell_type": "code", 360 | "execution_count": null, 361 | "id": "01e89fce", 362 | "metadata": {}, 363 | "outputs": [], 364 | "source": [ 365 | "#table Job_Company\n", 366 | "df_jc = df.copy()\n", 367 | "\n", 368 | "job_company = df_jc.merge(company_table, on=\"Company\" ).merge(job_table, on=\"Job Title\")\n", 369 | "job_company = job_company[[\"id_job\", \"id_company\"]]\n", 370 | "job_company\n" 371 | ] 372 | }, 373 | { 374 | "cell_type": "code", 375 | "execution_count": null, 376 | "id": "8a27e0b0", 377 | "metadata": {}, 378 | "outputs": [], 379 | "source": [ 380 | "job_company.drop_duplicates()" 381 | ] 382 | }, 383 | { 384 | "cell_type": "code", 385 | "execution_count": null, 386 | "id": "dad587ce", 387 | "metadata": {}, 388 | "outputs": [], 389 | "source": [ 390 | "# Insertion des données de la table \"Job_Company\" dans la base de donnees\n", 391 | "\n", 392 | "def insert_job_company_data(cursor, job_company_data):\n", 393 | " for index, row in job_company_data.iterrows():\n", 394 | " id_job = int(row[\"id_job\"])\n", 395 | " id_company = int(row[\"id_company\"])\n", 396 | " cursor.execute(\"INSERT INTO Job_Company (id_job, id_company) VALUES (?, ?)\", (id_job, id_company))\n", 397 | " conn.commit()\n", 398 | "\n", 399 | "# Appel de la fonction pour insérer les données dans la table \"job_company\"\n", 400 | "insert_job_company_data(cursor, job_company)" 401 | ] 402 | }, 403 | { 404 | "cell_type": "code", 405 | "execution_count": null, 406 | "id": "8373c1ad", 407 | "metadata": {}, 408 | "outputs": [], 409 | "source": [ 410 | "# Insertion des données dans la table \"country_table\"\n", 411 | "country_table = df[[\"Country\"]].drop_duplicates().reset_index(drop=True)\n", 412 | "\n", 413 | "country_table.insert(0, \"id_country\", range(1, len(country_table) + 1))\n", 414 | "display(country_table)" 415 | ] 416 | }, 417 | { 418 | "cell_type": "code", 419 | "execution_count": null, 420 | "id": "8d1faa38", 421 | "metadata": {}, 422 | "outputs": [], 423 | "source": [ 424 | "# Insertion des données de la table \"Country\" dans la base de donnees\n", 425 | "\n", 426 | "def insert_country_data(cursor, country_data):\n", 427 | " for index, row in country_data.iterrows():\n", 428 | " cursor.execute(\"INSERT INTO Country (id_country, country) VALUES (?, ?)\", row[\"id_country\"], row[\"Country\"])\n", 429 | " conn.commit()\n", 430 | "\n", 431 | " # Appel de la fonction pour insérer les données dans la table \"Country\"\n", 432 | "insert_country_data(cursor, country_table)\n", 433 | "\n", 434 | "# Fermeture de la connexion à la base de données\n" 435 | ] 436 | }, 437 | { 438 | "cell_type": "code", 439 | "execution_count": null, 440 | "id": "d1c4e64a", 441 | "metadata": {}, 442 | "outputs": [], 443 | "source": [ 444 | "#table Job_Country \n", 445 | "df_jct = df.copy()\n", 446 | "\n", 447 | "job_country = df_jct.merge(country_table, on=\"Country\" ).merge(job_table, on=\"Job Title\")\n", 448 | "job_country = job_country[[\"id_job\", \"id_country\"]]\n", 449 | "job_country\n" 450 | ] 451 | }, 452 | { 453 | "cell_type": "code", 454 | "execution_count": null, 455 | "id": "4014b321", 456 | "metadata": {}, 457 | "outputs": [], 458 | "source": [ 459 | "# Insertion des données de la table \"Job_Country\" dans la base de donnees\n", 460 | "\n", 461 | "def insert_job_country_data(cursor, job_country_data):\n", 462 | " for index, row in job_country_data.iterrows():\n", 463 | " id_job = int(row[\"id_job\"])\n", 464 | " id_country = int(row[\"id_country\"])\n", 465 | " cursor.execute(\"INSERT INTO Job_Country (id_job, id_country) VALUES (?, ?)\", (id_job, id_country))\n", 466 | " conn.commit()\n", 467 | "\n", 468 | "# Appel de la fonction pour insérer les données dans la table \"Job_Country\"\n", 469 | "insert_job_country_data(cursor, job_country)" 470 | ] 471 | }, 472 | { 473 | "cell_type": "code", 474 | "execution_count": null, 475 | "id": "55e94eae", 476 | "metadata": {}, 477 | "outputs": [], 478 | "source": [ 479 | "# Sélectionner la colonne \"Facilities\" et supprimer les doublons\n", 480 | "Facilities_table = df_copy1[[\"Facilities\"]].drop_duplicates().reset_index(drop=True)\n", 481 | "\n", 482 | "# Insérer une colonne \"id_facilities\" avec des valeurs croissantes à partir de 1\n", 483 | "Facilities_table.insert(0, \"id_facilities\", range(1, len(Facilities_table) + 1))\n", 484 | "\n", 485 | "# Afficher la table \"Facilities\"\n", 486 | "display(Facilities_table)" 487 | ] 488 | }, 489 | { 490 | "cell_type": "code", 491 | "execution_count": null, 492 | "id": "0beed09b", 493 | "metadata": {}, 494 | "outputs": [], 495 | "source": [ 496 | "# Insertion des données de la table \"Facilities\" dans la base de donnees\n", 497 | "\n", 498 | "def insert_facilities_data(cursor, facilities_data):\n", 499 | " for index, row in facilities_data.iterrows():\n", 500 | " cursor.execute(\"INSERT INTO Facilities (id_facilities, facilities) VALUES (?, ?)\", row[\"id_facilities\"], row[\"Facilities\"])\n", 501 | " conn.commit()\n", 502 | "\n", 503 | "# Appel de la fonction pour insérer les données dans la table \"Facilities\"\n", 504 | "insert_facilities_data(cursor, Facilities_table)\n", 505 | "\n", 506 | "# Fermeture de la connexion à la base de données" 507 | ] 508 | }, 509 | { 510 | "cell_type": "code", 511 | "execution_count": null, 512 | "id": "a265d0ca", 513 | "metadata": {}, 514 | "outputs": [], 515 | "source": [ 516 | "# Maintenant vous pouvez effectuer le merge avec la table \"Facilities_table\" et \"job_table\"\n", 517 | "job_Facilities = df_copy1.merge(Facilities_table, on=\"Facilities\").merge(job_table, on=\"Job Title\")\n", 518 | "job_Facilities = job_Facilities[[\"id_job\", \"id_facilities\"]]\n", 519 | "job_Facilities\n" 520 | ] 521 | }, 522 | { 523 | "cell_type": "code", 524 | "execution_count": null, 525 | "id": "47b8452a", 526 | "metadata": {}, 527 | "outputs": [], 528 | "source": [ 529 | "# Insertion des données de la table \"Job_Facilities\" dans la base de donnees\n", 530 | "\n", 531 | "def insert_job_facilities_data(cursor, job_facilities_data):\n", 532 | " for index, row in job_facilities_data.iterrows():\n", 533 | " id_job = int(row[\"id_job\"])\n", 534 | " id_facilities = int(row[\"id_facilities\"])\n", 535 | " cursor.execute(\"INSERT INTO Job_Facilities (id_job, id_facilities) VALUES (?, ?)\", (id_job, id_facilities))\n", 536 | " conn.commit()\n", 537 | " \n", 538 | " \n", 539 | "insert_job_facilities_data(cursor, job_Facilities)\n", 540 | "\n", 541 | "# Fermeture de la connexion à la base de données\n" 542 | ] 543 | }, 544 | { 545 | "cell_type": "code", 546 | "execution_count": null, 547 | "id": "c60d0a25", 548 | "metadata": {}, 549 | "outputs": [], 550 | "source": [ 551 | "# Insertion des données dans la table \"Requirment\"\n", 552 | "Requirment_table = df_copy[[\"Requirment of the company\"]].drop_duplicates().reset_index(drop=True)\n", 553 | "\n", 554 | "Requirment_table.insert(0, \"id_requirment\", range(1, len(Requirment_table) + 1))\n", 555 | "display(Requirment_table)\n", 556 | "\n" 557 | ] 558 | }, 559 | { 560 | "cell_type": "code", 561 | "execution_count": null, 562 | "id": "3e808164", 563 | "metadata": {}, 564 | "outputs": [], 565 | "source": [ 566 | "# Insertion des données de la table \"Requirment\" dans la base de donnees\n", 567 | "\n", 568 | "def insert_requirment_data(cursor, requirment_data):\n", 569 | " for index, row in requirment_data.iterrows():\n", 570 | " cursor.execute(\"INSERT INTO Requirements (id_requirement, requirement_company) VALUES (?, ?)\", row[\"id_requirment\"], row[\"Requirment of the company\"])\n", 571 | " conn.commit()\n", 572 | "\n", 573 | " # Appel de la fonction pour insérer les données dans la table \"Company\"\n", 574 | "insert_requirment_data(cursor, Requirment_table)\n", 575 | "\n", 576 | "# Fermeture de la connexion à la base de données\n" 577 | ] 578 | }, 579 | { 580 | "cell_type": "code", 581 | "execution_count": null, 582 | "id": "4b3d8855", 583 | "metadata": {}, 584 | "outputs": [], 585 | "source": [ 586 | "# df_copy\n", 587 | "job_requirements = df_copy.merge(Requirment_table, on=\"Requirment of the company\" ).merge(job_table, on=\"Job Title\")\n", 588 | "job_requirements = job_requirements[[\"id_job\", \"id_requirment\"]]\n", 589 | "job_requirements\n" 590 | ] 591 | }, 592 | { 593 | "cell_type": "code", 594 | "execution_count": null, 595 | "id": "41a4211e", 596 | "metadata": {}, 597 | "outputs": [], 598 | "source": [ 599 | "# Insertion des données de la table \"Job_Requirements\" dans la base de donnees\n", 600 | "\n", 601 | "def insert_job_requirements_data(cursor, job_requirements_data):\n", 602 | " for index, row in job_requirements_data.iterrows():\n", 603 | " id_job = int(row[\"id_job\"])\n", 604 | " id_requirment = int(row[\"id_requirment\"])\n", 605 | " cursor.execute(\"INSERT INTO Job_Requirements (id_job, id_requirement) VALUES (?, ?)\", (id_job, id_requirment))\n", 606 | " conn.commit()\n", 607 | " \n", 608 | "insert_job_requirements_data(cursor, job_requirements)\n", 609 | "\n", 610 | "# Fermeture de la connexion à la base de données\n" 611 | ] 612 | } 613 | ], 614 | "metadata": { 615 | "kernelspec": { 616 | "display_name": "Python 3 (ipykernel)", 617 | "language": "python", 618 | "name": "python3" 619 | }, 620 | "language_info": { 621 | "codemirror_mode": { 622 | "name": "ipython", 623 | "version": 3 624 | }, 625 | "file_extension": ".py", 626 | "mimetype": "text/x-python", 627 | "name": "python", 628 | "nbconvert_exporter": "python", 629 | "pygments_lexer": "ipython3", 630 | "version": "3.11.3" 631 | } 632 | }, 633 | "nbformat": 4, 634 | "nbformat_minor": 5 635 | } 636 | --------------------------------------------------------------------------------