AttributeError:'Series'对象没有属性'days'

时间:2017-07-07 22:56:48

标签: python attributeerror timedelta

我在数据框dtype中有一个列'delta':timedelta64 [ns],通过从另一个日期转包一个日期来计算。我试图通过使用此代码返回浮动天数:

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

但是我收到了这个错误:

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

任何想法为什么?

2 个答案:

答案 0 :(得分:8)

在减去日期时,您应使用以下代码。

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

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

答案 1 :(得分:4)

DataFrame列是一个Series,对于Series,需要dt.accessor来计算天数(如果使用的是较新的Pandas版本)。您可以看到文档here

因此,您需要更改:

df['days'] = float(df['delta'].days)

收件人

df['days'] = float(df['delta'].dt.days)