2017-07-07 2 views
0

J'ai une colonne 'delta' dans une datatype dtype: timedelta64 [ns], calculée en sous-traitant une date d'une autre. Je suis en train de retourner le nombre de jours comme un flotteur en utilisant ce code:AttributeError: l'objet 'Series' n'a pas d'attribut 'days'

from datetime import datetime 
from datetime import date 
df['days'] = float(df['delta'].days) 

mais je reçois cette erreur:

AttributeError: 'Series' object has no attribute 'days' 

Toutes les idées pourquoi?

+0

Vous appelez une méthode sur une série (qui correspond à une colonne DataFrame) et non sur les valeurs qu'elle contient. Etes-vous sûr que le 'dtype' de cette colonne est déjà une sorte de' datetime'? – cmaher

+0

peut-être vous [besoin de le convertir] (https://stackoverflow.com/questions/18215317/extracting-days-from-a-numpy-timedelta64-value) – PRMoureu

+0

Oui - Nom: delta, dtype: timedelta64 [ns] – OllieP

Répondre

1

En soustrayant les dates, vous devez utiliser le code suivant.

df = pd.DataFrame([ pd.Timestamp('20010101'), pd.Timestamp('20040605') ]) 
(df.loc[0]-df.loc[1]).astype('timedelta64[D]') 

Il faut donc utiliser essentiellement .astype('timedelta64[D]') sur la colonne soustraites.