tableau de présence avec compteur

tableau de présence avec compteur - Python - Programmation

Marsh Posté le 14-08-2019 à 21:22:29    

bonjour a tous
 
j'ai un fichier de personnes, avec une tranche horaire (heure arrondie à l'heure)
 
toto, 10, date
tutu, 11, date
toto, 23, date
toto, 10, date
tata, 10, date
 
je veux construire un tableau par heure (0 a 23) contenant les personnes dans leur tranche  
et le nombre de fois ou elle sont vues dans cette tranche  
 
tablo[10] = [toto,2][tata,1]
tablo[11] = [tutu,1]
tablo[23] = [toto,1]
 
 
je m'embrouille un peu sur la façon de définir le bouzin et de le construire (dict ?, liste, ...)
et je me plante sur les syntaxe dans mes essais
 
 
si une bonne âme avait un solution simple à comprendre ?
 
merci
 


---------------
docteur, docteur & docteur en hyper recherches propres... . -. -..   -. ..- -.. . ...
Reply

Marsh Posté le 14-08-2019 à 21:22:29   

Reply

Marsh Posté le 16-08-2019 à 09:40:07    

Code :
  1. name,hour,date
  2. toto,10,date
  3. tutu,11,date
  4. toto,23,date
  5. toto,10,date
  6. tata,10,date


Code :
  1. import pandas as pd
  2. df = pd.read_csv("csv.csv" )
  3. dic = {}
  4. for row in df.iterrows():
  5.     row = row[1]
  6.     if not row["hour"] in dic:
  7.         dic[row["hour"]] = {row["name"]: 1}
  8.     elif row["name"] not in dic[row["hour"]]:
  9.         dic[row["hour"]][row["name"]] = 1
  10.     else:
  11.         dic[row["hour"]][row["name"]] += 1
  12. print(dic)

Reply

Marsh Posté le 16-08-2019 à 10:59:57    

Merci beaucoup pour ta réponse, ca me donne une autre approche
 
voici un autre réponse que l'on ma donnée par ailleurs  

Code :
  1. from collections import defaultdict
  2. table = [defaultdict(int) for _ in range(24)]
  3. with open('data.txt', 'r') as f:
  4.     for line in f.readlines():
  5.         name, hour, _ = line.split(',')
  6.         name = name.strip().lower()
  7.         hour = int(hour.strip())
  8.         table[hour][name]+=1
  9. for hour, entry in enumerate(table):
  10.     if not entry:
  11.         continue
  12.     print("Table[{hour}] = {entries}".format(
  13.         hour = hour,
  14.         entries = str(','.join(["[{},{}]".format(name,occ) for name,occ in entry.items()]))
  15.     ))


---------------
docteur, docteur & docteur en hyper recherches propres... . -. -..   -. ..- -.. . ...
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed