web-dev-qa-db-ja.com

AttributeError: 'Series'オブジェクトには属性 'days'がありません

データフレーム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'

何かアイデアはありますか?

9
OllieP

日付を減算するときは、次のコードを使用する必要があります。

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

したがって、基本的には、差し引かれた列で.astype('timedelta64[D]')を使用します。

9
howard roark

DataFrame列はシリーズであり、シリーズの場合、日数を計算するためにdt.accessorが必要です(新しいPandasバージョンを使用している場合)。ドキュメントを参照 here

したがって、変更する必要があります。

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

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