pythonのpandasで日にちの差を出したものを年齢に変換したい
pandas2にかわってから、下記のtymedeltaの記述が使えないようです。pandasライブラリ活用入門「第2版」の第2章のコードなのですが、動かず、googleで調べてもわかりません。
発生している問題・エラーメッセージ
ValueError: Cannot convert from timedelta64[ns] to timedelta64[Y]. Supported resolutions are 's', 'ms', 'us', 'ns'
該当のソースコード
scientists=pd.DataFrame( data={'Occupation':['Chemist','Statistician'], 'Born':['1920-07-25', '1876-06-13'], 'Died':['1958-04-16', '1937-10-16'], 'Age':[37,61]}, index=['Rosaline Franklin','William Gosset'], columns=['Occupation', 'Born','Died','Age']) born_datetime = pd.to_datetime(scientists['Born'], format='%Y-%m-%d') scientists['died_dt'] = pd.to_datetime(scientists['Died'], format='%Y-%m-%d') scientists["age_days"]=( scientists['died_dt'] - scientists['born_dt'] ) scientists["age_years"] =( scientists['age_days'].astype('timedelta64[Y]') )
試したこと
googleなどで
df['recency'] = df['recency'].dt.days
のような表現ができると書いてあったので、
scientists['age_days'].dt.years
にしましたが、だめでした。

0 コメント