Question gestion durée total dataframe
RésoluBonjour a vous.
Je viens chercher votre aide sur comment gérer des durées dans une DataFrame. Ma colonne ressemble à ceci :
20 minutes
1 heures
0 secondes
1 heures 15 minutes
etc...
... sachant que les unités ne sont pas toujours affichées, si elle ne sont pas utilisées.
Je pensais faire une extraction avant un mot clé ou ajouter à toutes les lignes les 3 unités (heures minutes secondes).
Dans les 2 cas je ne sais pas comment m'y prendre. Si vous pouvez me guider vers une fonction, si cela est possible.
Merci d'avance.
- Question gestion durée total dataframe
- Total uninstall - Télécharger - Divers Utilitaires
- Formule total excel - Guide
- Logiciel gestion locative gratuit excel - Télécharger - Comptabilité & Facturation
- Total video converter - Télécharger - Conversion & Codecs
- Logiciel gestion photo gratuit - Guide
1 réponse
Bonjour,
Le plus simple est de passer par une expression rationnelle pour extraire l'éventuelle nombre d'heures, de minutes, de secondes. Il faudrait juste clarifier ce que tu entends pas "les unités ne sont pas toujours affichées si elles ne sont pas utilisées".
Dans tous les cas, le type de données adéquat est datetime.time (voir ce lien) car cela permet de gérer naturellement des données temporelles (tu peux les trier avec <, les utiliser dans un graphe, etc.).
Voici comment tu peux procéder.
#!/usr/bin/env python3 import re from datetime import time def to_int(s: str) -> int: return 0 if s is None else int(s) RE_TIME = re.compile(r"((\d+) heures?)?\s*((\d+) minutes?)?\s*((\d+) secondes?)") def to_time(s: str) -> time: m = RE_TIME.match(s) if not m: return None hh = to_int(m.group(2)) mm = to_int(m.group(4)) ss = to_int(m.group(6)) return time(hour=hh, minute=mm, second=ss) for s in [ "1 heure 20 secondes", "2 minutes 34 secondes", "5 heures 16 minutes 27 secondes" ]: print(to_time(s))
Résultat :
01:00:20
00:02:34
05:16:27
Bonne chance
Hello, merci de ton retour
Je ne savais pas comment faire du fait que j'ai des cellules avec uniquement les minutes d'affiché, ou uniquement l'heure.
Je vais regarder ce que tu m'a proposé.
Merci encore.
Ok, je bascule le sujet en résolu, mais si tu as besoin de précision sur cette question, n'hésite pas à demander.