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 :

Modification date erronnée


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 147
    Par défaut Modification date erronnée
    Bonjour,

    Je souhaiterais modifier des années erronées dans une colonne mais je n'y arrive pas.
    Exemple de date à modifier : [215-05-01], je souhaite modifier le 215 en 2015.

    La ligne suivante fonctionne mais comme j'ai beaucoup de de données j'aurai souhaiter le faire par une fonction ou une boucle mais la je n'y arrive pas. Pour info, cette colonne est considérée comme un type object et non date à cause de ces erreurs de saisie d'années.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    df['Date']=df['Date'].replace({'215-12-05':'2015-12-05','215-05-11':'2015-05-11'})
    J'ai tenté ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    for (index,ladate) in enumerate(df['Date']):
        #print(index,ladate.split('-'))
        if ladate.split('-')[0]=='215':
            new_date='2015-'+ladate.split('-')[1]+'-'+ladate.split('-')[2]
            print (new_date)
            df['New Date']=new_date
        else:
            df['New Date']=ladate
    Mais il me renvoi le message suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    AttributeError                            Traceback (most recent call last)
    ~\AppData\Local\Temp\ipykernel_27464\1035048496.py in <module>
          2 for (index,ladate) in enumerate(df['Date']):
          3     #print(index,ladate.split('-'))
    ----> 4     if ladate.split('-')[0]=='215':
          5         new_date='2015-'+ladate.split('-')[1]+'-'+ladate.split('-')[2]
          6         print (new_date)
     
    AttributeError: 'float' object has no attribute 'split'
    Merci d'avance pour votre aide.

  2. #2
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 323
    Par défaut
    bonjour

    le message d'erreur est assez clair : "ladate" est un réél pour pandas et pas une chaine comme tu l'espères ... (peut-être forcer le type de cette colonne ? en str, voir en date ?)
    Comme ta ligne en commentaire, tu peux afficher cette variable et son type pour debug
    Peut-être que pandas comme beaucoup beaucoup d'autres , en interne, enregistre les dates au format "réel"

Discussions similaires

  1. Infos sur la gestion des modifs à date
    Par famifrench dans le forum SAP
    Réponses: 0
    Dernier message: 30/07/2009, 22h27
  2. [Inno Setup] Modif date d'un fichier à l'install
    Par ValerieDo dans le forum Outils
    Réponses: 1
    Dernier message: 19/01/2009, 13h48
  3. [MFC]Modification date/heure système
    Par jacklafrip dans le forum MFC
    Réponses: 2
    Dernier message: 24/05/2007, 17h24
  4. [VB]Binding Collect : pb modification date
    Par MITCH31 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 26/02/2006, 12h32

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