IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Conversion timestamp pour calcul


Sujet :

Python

  1. #1
    Membre habitué
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Septembre 2019
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2019
    Messages : 9
    Par défaut Conversion timestamp pour calcul
    Bonjour,

    J'ai plusieurs bases de données et je fais une différence de date dont je voudrais mené une étude statistique sur cette différence après (moyenne, decile,...)

    Sauf que lors de la différence est comme ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    0 days 00:24:00.000000000
    J'ai essayé de le convertir mais je n'y arrive pas, l'objectif serait de pourvoir le mettre en seconde ou en minute et faire mes calcules après.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DF_1['TAT']= pd.Timestamp(DF_1['TAT'])
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    TypeError: Cannot convert input [0                               NaN
    1                               NaN
    2                               NaN
    3                               NaN
    4         4 days 11:23:00.000000000
     
    263563    0 days 00:24:00.000000000
    263564    0 days 00:33:00.000000000
    263565    0 days 00:33:00.000000000
    263566    0 days 00:33:00.000000000
    263567    0 days 00:33:00.000000000
    Name: TAT, Length: 263568, dtype: object] of type <class 'pandas.core.series.Series'> to Timestamp
    Est ce que quelqu'un a une idée ?

  2. #2
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Il faudrait d'abord savoir sous quel forme la date de la base de données est connue.

    Imaginons qu'on puisse l'avoir sous forme de: année, mois, jour, heure, minutes, secondes.

    Alors, on utilise le module "datetime", et on calcule la classe "datetime" pour les 2 dates. Leur différence donne un résultat de format "timedelta":

    Exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    from datetime import datetime, timedelta
     
    dt1 = datetime(2020,1,18,0,0,0) # le 18/01/2020 à 0h:0mn:0s
    dt2 = datetime(2020,2,20,0,0,0) # le 20/02/2020 à 0h:0mn:0s
     
    print(dt2-dt1)
    Ce qui affiche:

    Si les dates étaient connues sous forme de secondes après l'epoch, ce serait la même chose:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    dt1 = datetime.fromtimestamp(1579302000.0)
    dt2 = datetime.fromtimestamp(1582153200.0)
     
    print(dt2-dt1)
    Ce qui donnerait, bien sûr, le même résultat.

    Pour +: voir la doc => https://docs.python.org/3.7/library/...odule-datetime

  3. #3
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 679
    Par défaut
    Salut,

    Citation Envoyé par Julien_VBA Voir le message
    Est ce que quelqu'un a une idée ?
    La différence de 2 dates (des Timestamp sous pandas et des datetime sous Python) donne une durée (des Timedelta pour pandas et des timedelta pour Python).
    Et si on prends 2 dates:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> a = pd.Timestamp.now()
    >>> a
    Timestamp('2020-02-20 18:16:16.496119')
    >>> b = pd.Timestamp.now()
    et qu'on en fait la différence on obtient des Timedelta:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> b - a
    Timedelta('0 days 00:00:07.859375')
    >>> print(c)
    0 days 00:00:07.859375
    que je peux ajouter ou diviser:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> c + c
    Timedelta('0 days 00:00:15.718750')
    >>> c / 2
    Timedelta('0 days 00:00:03.929687')
    >>>
    comme s'il s'agissait de nombres: la représentation interne (.value) est un nombre de nanosecondes. L'affichage qu'on obtient via "print", c'est juste pour le rendre plus lisible
    par les humains. Et vous avez même une méthode (total_seconds) pour récupérer le nombre total de secondes (un flottant) que çà représente.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. [XL-2010] TimeStamp avec gestion de l'heure d'été/hiver pour calcul de durée
    Par Bragu Demon dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 22/06/2017, 15h26
  2. update pour calcul pourcentage (SQL SERVER 2000)
    Par meufeu dans le forum Langage SQL
    Réponses: 3
    Dernier message: 13/09/2005, 09h04
  3. [Conversion]Probleme de calcul en double et en floatant
    Par TOPGUN89 dans le forum Général Java
    Réponses: 2
    Dernier message: 18/04/2005, 17h46
  4. Conversion Timestamp vers varchar
    Par stejutt dans le forum SQL
    Réponses: 4
    Dernier message: 08/01/2004, 08h46
  5. Réponses: 2
    Dernier message: 01/04/2003, 22h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo