Helkarth

TD1_v1

Oct 16th, 2018
183
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.53 KB | None | 0 0
  1. ####################
  2. #
  3. # Travail TD1
  4. # Realise par: Caroline Beauchamp
  5. # Remise: 09/10/2018
  6. #
  7. ####################
  8.  
  9. # importation du CSV contenant les donnees
  10.  
  11. import csv  # importation du module CSV
  12.  
  13. data = []  # =creation du tableau de donnees
  14.  
  15. # lecture du fichier, a noter que le "path" doit etre modifie selon lemplacement du fichier CSV
  16. with open('C:\\Users\\mydar\\Downloads\\census_data_1.csv', 'rb') as csvfile:
  17.     csvreader = csv.reader(csvfile, delimiter=';')
  18.     for row in csvreader:
  19.         data.append(row)  # ajout des lignes du csv dans data
  20. del data[0]  # pour enlever l entete de liste
  21.  
  22. # attribution des variables
  23. pop2004 = []
  24. pop2013 = []
  25.  
  26. pays_POP_croissance = "null"
  27. diff_popC = 0  # type: int
  28. diff_pop_MAX = 0  # type: int
  29. diff_P_popC = 0  # type: float
  30. diff_P_pop_MAX = 0  # type: float
  31. pays_P_POP_croissance = "null"
  32.  
  33. pays_POP_decroissance = "null"
  34. diff_popD = 0  # type: int
  35. diff_pop_MIN = 9999999999.  # type: int
  36. diff_P_popD = 0  # type: float
  37. diff_P_pop_MIN = 9999999999.  # type: float
  38. pays_P_POP_decroissance = "null"
  39.  
  40. hommesPlus = []
  41. count_homme = 0
  42.  
  43. # en conservant tt les valeur on peut reutiliser popAN
  44. for i in data:
  45.     if i[2] == '2004':
  46.         pop2004.append(i)
  47.  
  48.     elif i[2] == '2013':
  49.         pop2013.append(i)
  50.  
  51. for x in pop2004:
  52.     for j in pop2013:
  53.         if x[1] == j[1] and x[4] != '(NA)':
  54.             diff_popC = (int(j[4])) - (int(x[4]))
  55.             if (diff_popC) > (diff_pop_MAX):
  56.                 diff_pop_MAX = diff_popC
  57.                 pays_POP_croissance = x[1]
  58.  
  59. print pays_POP_croissance
  60.  
  61. # q2 diff en pourcentage
  62. for x in pop2004:
  63.     for j in pop2013:
  64.         if x[1] == j[1] and x[4] != '(NA)':
  65.             diff_P_popC = (((float(j[4])) - (float(x[4]))) / (float(x[4]))) * 100
  66.             if (diff_P_popC) > (diff_P_pop_MAX):
  67.                 diff_P_pop_MAX = diff_P_popC
  68.                 pays_P_POP_croissance = x[1]
  69.  
  70. print pays_P_POP_croissance, diff_P_pop_MAX
  71.  
  72. # q3
  73. for x in pop2004:
  74.     for j in pop2013:
  75.         if x[1] == j[1] and x[4] != '(NA)':
  76.             diff_popD = (int(j[4])) - (int(x[4]))
  77.             if (diff_popD) < (diff_pop_MIN):
  78.                 diff_pop_MIN = diff_popD
  79.                 pays_POP_decroissance = x[1]
  80.  
  81. print pays_POP_decroissance  # ecrire belle phrase
  82.  
  83. # q4
  84. for x in pop2004:
  85.     for j in pop2013:
  86.         if x[1] == j[1] and x[4] != '(NA)':
  87.             diff_P_popD = (((float(j[4])) - (float(x[4]))) / (float(x[4]))) * 100
  88.             if (diff_P_popD) < (diff_P_pop_MIN):
  89.                 diff_P_pop_MIN = diff_P_popD
  90.                 pays_P_POP_decroissance = x[1]
  91.  
  92. print pays_P_POP_decroissance, diff_P_pop_MIN  # ecrire belle phrase
  93.  
  94. # q5
  95. annee = []  # creation de liste dannee pck peut varier si on change de file
  96. for i in data:
  97.     if i[2] not in annee:
  98.         annee.append(i[2])
  99.  
  100. for i in data:
  101.     if i[5] > i[6] and i[5] != '(NA)' and i[6] != '(NA)' and all(
  102.             annee):
  103.         if i[1] not in hommesPlus:
  104.             hommesPlus.append(i[1])  # si on veut aller consulter la liste des pays, appeler hommesPlus
  105.             count_homme += 1
  106.  
  107. print count_homme  # belle phrase
  108.  
  109. # q6
  110. count = 1
  111. list_pays = []
  112. pop2013.sort(key=lambda x:(int(x[4])))
  113.  
  114. for i in data:
  115.     if count < 11:
  116.         list_pays.append(pop2013[-count])
  117.         count += 1
  118.  
  119. for x in list_pays:
  120.     print x[1]
  121.  
  122.  
  123.  
  124. # q7
  125. popMondiale = {}
  126. somme = 0  # type: int
  127. value_croissance = 0  # type: int
  128. annee_plus = 0  # type: int
  129. tempMonde = 0.00# type: float
  130. ratioMonde = 0.00  # type: float
  131.  
  132. for i in annee:
  133.     popMondiale[i] = None
  134.  
  135. for x in data:
  136.     for y in popMondiale:
  137.         if popMondiale[y] == popMondiale[x[2]] and x[4] != '(NA)':
  138.             somme += int(x[4])
  139.             popMondiale[y] = float(somme)
  140.  
  141. for y in popMondiale:
  142.     if (float(popMondiale[y])) > (float(popMondiale[y-1])):
  143.         tempMonde = (((float(popMondiale[y]) - (float(popMondiale[y-1]))) / (float(popMondiale[y-1]))))*100
  144.         if tempMonde > ratioMonde:
  145.             ratioMonde = tempMonde
  146.             anneeMonde = popMondiale[y]
  147.  
  148. print anneeMonde, ratioMonde
  149.  
  150.  
  151.  
  152. #q8
  153. data_NonDispo = []
  154.  
  155.  
  156. for i in data:
  157.     if i[4] == '(NA)':
  158.         data_NonDispo.append(i)
  159.  
  160. for i in data_NonDispo:
  161.     print i[1], i[2]
  162.  
  163. #q9
  164. ratioFM = 0.00
  165. tempRatio = 0.00
  166. paysFM = "null"
  167.  
  168. for i in data:
  169.     if i[6] > i[5] and i[5] != '(NA)' and i[6] != '(NA)' and all(annee):
  170.         tempRatio = (float(i[6]))/(float(i[5]))
  171.         if tempRatio > ratioFM:
  172.             ratioFM = tempRatio
  173.             paysFM = i[1]
  174.  
  175. print paysFM, ratioFM
Advertisement
Add Comment
Please, Sign In to add comment