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.

112 lines
6.7 KiB

  1. # IMPORTS
  2. import pandas as pd
  3. # Georisque
  4. emission = pd.read_csv("C:/Oumayma/PSB M2/S9/SCRUM/bdd/1. Installations industrielles rejetant des polluants/emissions.csv",error_bad_lines=False, sep=";")
  5. etablissements = pd.read_csv("C:/Oumayma/PSB M2/S9/SCRUM/bdd/1. Installations industrielles rejetant des polluants/etablissements.csv",error_bad_lines=False, sep=";")
  6. Prelevements = pd.read_csv("C:/Oumayma/PSB M2/S9/SCRUM/bdd/1. Installations industrielles rejetant des polluants/Prelevements.csv",error_bad_lines=False, sep=";")
  7. Prod_dechets_dangereux = pd.read_csv("C:/Oumayma/PSB M2/S9/SCRUM/bdd/1. Installations industrielles rejetant des polluants/Prod_dechets_dangereux.csv",error_bad_lines=False, sep=";")
  8. Prod_dechets_non_dangereux = pd.read_csv("C:/Oumayma/PSB M2/S9/SCRUM/bdd/1. Installations industrielles rejetant des polluants/Prod_dechets_non_dangereux.csv",error_bad_lines=False, sep=";")
  9. Trait_dechets_dangereux = pd.read_csv("C:/Oumayma/PSB M2/S9/SCRUM/bdd/1. Installations industrielles rejetant des polluants/Trait_dechets_dangereux.csv",error_bad_lines=False, sep=";")
  10. Trait_dechets_non_dangereux = pd.read_csv("C:/Oumayma/PSB M2/S9/SCRUM/bdd/1. Installations industrielles rejetant des polluants/Trait_dechets_non_dangereux.csv",error_bad_lines=False, sep=";")
  11. # On retire la modalité tota pour le dioxyde de carbone car somme l'ensemble de dioxyde
  12. emission2 = emission.loc[emission['polluant'] != "Dioxyde de carbone (CO2) total (d'origine biomasse et non biomasse)"]
  13. # on garde uniquement les variables necessaires
  14. emission_v = emission2.drop(emission2.columns[[1, 2, 4]], axis=1)
  15. # pas besoin de faire de group by pour la table prelevements
  16. Prelevements_v = Prelevements.drop(Prelevements.columns[[1,2]], axis=1)
  17. Prod_dechets_dangereux_v = Prod_dechets_dangereux.drop(Prod_dechets_dangereux.iloc[:,1:10],1)
  18. Prod_dechets_non_dangereux_v = Prod_dechets_non_dangereux.drop(Prod_dechets_non_dangereux.iloc[:,1:10],1)
  19. Trait_dechets_dangereux_v = Prod_dechets_non_dangereux.drop(Prod_dechets_non_dangereux.iloc[:,1:10],1)
  20. Trait_dechets_non_dangereux_v = Trait_dechets_non_dangereux.drop(Trait_dechets_non_dangereux.iloc[:,1:11],1)
  21. # Rename des variables pour differencier les differentes quantites
  22. emission_v2 = emission_v.rename(columns={'milieu': 'milieu1', 'quantite': 'quantite1'})
  23. Prod_dechets_dangereux_v2 = Prod_dechets_dangereux_v.rename(columns={'quantite': 'quantite_prod_dang'})
  24. Prod_dechets_non_dangereux_v2 = Prod_dechets_non_dangereux_v.rename(columns={'quantite': 'quantite_prod_non_dang'})
  25. Trait_dechets_dangereux_v2 = Trait_dechets_dangereux_v.rename(columns={'quantite': 'quantite_trait_dang'})
  26. Trait_dechets_non_dangereux_v2 = Trait_dechets_non_dangereux_v.rename(columns={'quantite_traitee': 'quantite_trait_non_dang'})
  27. # group by pour n'avoir qu'une ligne par identifiant et milieu
  28. emission_g = emission_v2.groupby(['identifiant', 'milieu1'], as_index=False).sum()
  29. Prod_dechets_dangereux_g = Prod_dechets_dangereux_v2.groupby(['identifiant'], as_index=False).sum()
  30. Prod_dechets_non_dangereux_g = Prod_dechets_non_dangereux_v2.groupby(['identifiant'], as_index=False).sum()
  31. Trait_dechets_dangereux_g = Trait_dechets_dangereux_v2.groupby(['identifiant'], as_index=False).sum()
  32. Trait_dechets_non_dangereux_g = Trait_dechets_non_dangereux_v2.groupby(['identifiant'], as_index=False).sum()
  33. # Transformation de la table emission pour passer d'une ligne par identifiant et une colonne par milieu
  34. emission_g.loc[emission_g['milieu1'] == 'Air', 'qte_air'] = emission_g['quantite1']
  35. emission_g.loc[emission_g['milieu1'] == 'Sol', 'qte_sol'] = emission_g['quantite1']
  36. emission_g.loc[emission_g['milieu1'] == 'Eau (direct)', 'qte_eau_d'] = emission_g['quantite1']
  37. emission_g.loc[emission_g['milieu1'] == 'Eau (indirect)', 'qte_eau_i'] = emission_g['quantite1']
  38. emission_2 = emission_g.drop(columns=["milieu1", "quantite1"])
  39. emission_g2 = emission_2.groupby(['identifiant'], as_index=False).sum()
  40. # on met l'identifiant en str
  41. etablissements['identifiant'] = etablissements['identifiant'].apply(str)
  42. emission_g2['identifiant'] = emission_g2['identifiant'].apply(str)
  43. Prelevements_v['identifiant'] = Prelevements_v['identifiant'].apply(str)
  44. Prod_dechets_dangereux_g['identifiant'] = Prod_dechets_dangereux_g['identifiant'].apply(str)
  45. Prod_dechets_non_dangereux_g['identifiant'] = Prod_dechets_non_dangereux_g['identifiant'].apply(str)
  46. Trait_dechets_dangereux_g['identifiant'] = Trait_dechets_dangereux_g['identifiant'].apply(str)
  47. Trait_dechets_non_dangereux_g['identifiant'] = Trait_dechets_non_dangereux_g['identifiant'].apply(str)
  48. #Traitement du code postal sur 5 caractères
  49. etablissements['code_postal'] = etablissements['code_postal'].apply(lambda x : str(x).zfill(5))
  50. # Merge
  51. merge1 = etablissements.merge(emission_g2, how='left', on='identifiant')
  52. merge2 = merge1.merge(Prelevements_v, how='left', on='identifiant')
  53. merge3 = merge2.merge(Prod_dechets_dangereux_g, how='left', on='identifiant')
  54. merge4 = merge3.merge(Prod_dechets_non_dangereux_g, how='left', on='identifiant')
  55. merge5 = merge4.merge(Trait_dechets_dangereux_g, how='left', on='identifiant')
  56. merge6 = merge5.merge(Trait_dechets_non_dangereux_g, how='left', on='identifiant')
  57. # verif
  58. emission_g2.info()
  59. emission.describe()
  60. etablissements.info()
  61. etablissements.describe()
  62. Prelevements_v.info()
  63. Prelevements_v.describe()
  64. Prod_dechets_dangereux_g.info()
  65. Prod_dechets_dangereux_g.describe()
  66. Prod_dechets_non_dangereux_g.info()
  67. Prod_dechets_non_dangereux_g.describe()
  68. Trait_dechets_dangereux_g.info()
  69. Trait_dechets_dangereux_g.describe()
  70. Trait_dechets_non_dangereux_g.info()
  71. Trait_dechets_non_dangereux_g.describe()
  72. # Export
  73. emission_g2.to_csv("C:/Oumayma/PSB M2/S9/SCRUM/bdd/1. Installations industrielles rejetant des polluants/emission_final.csv")
  74. etablissements.to_csv("C:/Oumayma/PSB M2/S9/SCRUM/bdd/1. Installations industrielles rejetant des polluants/etablissement_final.csv")
  75. Prelevements_v.to_csv("C:/Oumayma/PSB M2/S9/SCRUM/bdd/1. Installations industrielles rejetant des polluants/Prelevement_final.csv")
  76. Prod_dechets_dangereux_g.to_csv("C:/Oumayma/PSB M2/S9/SCRUM/bdd/1. Installations industrielles rejetant des polluants/Prod_dangereux_final.csv")
  77. Prod_dechets_non_dangereux_g.to_csv("C:/Oumayma/PSB M2/S9/SCRUM/bdd/1. Installations industrielles rejetant des polluants/Prod_non_dangereux_final.csv")
  78. Trait_dechets_dangereux_g.to_csv("C:/Oumayma/PSB M2/S9/SCRUM/bdd/1. Installations industrielles rejetant des polluants/Trait_dechets_dangereux_g.csv")
  79. Trait_dechets_non_dangereux_g.to_csv("C:/Oumayma/PSB M2/S9/SCRUM/bdd/1. Installations industrielles rejetant des polluants/Trait_non_dangereux_final.csv")
  80. merge6.to_csv("C:/Oumayma/PSB M2/S9/SCRUM/bdd/bdd_final.csv")