Partage
  • Partager sur Facebook
  • Partager sur Twitter

Error avec un dataframe et un timedelta

    27 septembre 2022 à 10:57:16

    Bonjour, 

    J'ai un soucis avec un script (qui me semble fonctionnait avant, peut être une incompatibilité avec les nouvelles versions de python ? ). 

    Mon objectif est de mettre en forme une série de données. 

    Voici mon fichier de base : 

    DATE	HEURE	PLUIE	TEMPERATURE	HUMIDITE
    01/10/2021	0	0	174	85
    01/10/2021	1	0	179	79
    01/10/2021	2	0	181	78
    01/10/2021	3	0	206	72
    01/10/2021	4	0	200	72
    01/10/2021	5	0	195	73
    01/10/2021	6	0	204	69
    01/10/2021	7	0	231	65
    01/10/2021	8	0	245	57
    01/10/2021	9	0	254	76
    01/10/2021	10	0	254	63
    01/10/2021	11	0	258	63
    01/10/2021	12	0	260	61
    01/10/2021	13	0	264	62
    01/10/2021	14	0	261	66
    01/10/2021	15	0	243	75
    01/10/2021	16	0	231	77
    01/10/2021	17	0	219	82
    01/10/2021	18	0	201	87
    01/10/2021	19	0	193	92
    01/10/2021	20	0	186	98
    01/10/2021	21	0	185	89
    01/10/2021	22	0	177	100
    01/10/2021	23	0	179	96
    02/10/2021	0	0	181	95
    



    Et voici mon code python : 

    import pandas as pd
    from datetime import datetime , timedelta, date
    
    
    
    moncsv = pd.read_csv('moncsv.csv', delimiter=';')
    moncsv['DATE'] = pd.to_datetime(moncsv['DATE'],format="%d/%m/%Y") 
    moncsv.loc[moncsv['HEURE'] == '0', ['DATE']] =  moncsv['DATE'] + timedelta(days=-1)
    
    
    TypeError: cannot astype a datetimelike from [datetime64[ns]] to [float64]
    

    La ligne 8 génère une erreur ... 

    j'ai l'impression que l'erreur est documentée sur internet, il y a pas mal de topic qui s'ouvre mais je n'ai pas trouvé la réponse pour monproblème avec timedelta, puis je ne comprend pas tout. Apparemment un problème de conversion. o_O

    Est-ce que quelqu'un a une idée ? 

    Merci beaucoup. :ange:

    PS: J'ai trouvé une solution temporaire: 

    moncsv['DATE'][moncsv['HEURE'] == '0000'] = moncsv['DATE'] + pd.Timedelta(days=-1)

    La ligne fonctionne mais j'aimerais savoir pourquoi avec .loc ça ne fonctionne pas ... 

    -
    Edité par fafine 27 septembre 2022 à 11:21:00

    • Partager sur Facebook
    • Partager sur Twitter

    Error avec un dataframe et un timedelta

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown