2017-07-07 134 views
0

我在數據框dtype:timedelta64 [ns]中有一列'delta',通過從另一個日期轉包出一個日期來計算。我試圖通過使用此代碼返回的天數爲float:AttributeError:'系列'對象沒有'days'屬性

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

但我收到此錯誤:

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

任何想法,爲什麼?

+0

您正在調用Series上的方法(這是DataFrame列的內容),而不是其中的值。你確定那個列的'dtype'已經是某種'datetime'了嗎? – cmaher

+0

也許你[需要轉換它](https://stackoverflow.com/questions/18215317/extracting-days-from-a-numpy-timedelta64-value) – PRMoureu

+0

是的 - 名稱:delta,dtype:timedelta64 [ns] – OllieP

回答

1

雖然減去日期應使用下面的代碼。

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

所以基本上在減去列中使用.astype('timedelta64[D]')

相關問題