我在数据框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'
任何想法为什么?
答案 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)