前提・実現したいこと
PandasのDataFrameにおいて、datetimeで作成した日付の間隔を使って、相関分析などの数値演算をしたい。
発生している問題・エラーメッセージ
次のようなエラーが出る。
python
1 2TypeError: ufunc multiply cannot use operands with types dtype('<m8[ns]') and dtype('<m8[ns]') 3
該当のソースコード
python
1 2# ライブラリのインポート 3import pandas as pd 4from datetime import datetime 5from scipy.stats import pearsonr 6 7# データフレームの作成 8df = pd.DataFrame({ 9 'date':[datetime(2018,6,1),datetime(2018,6,2),datetime(2018,6,3)], 10 'value':[1.2, 3.5, 4.7] 11}) 12 13# 日数の間隔(days)を追加 14today = datetime(2018, 6, 1) 15df['days'] = df['date'] - today 16 17# 相関係数の確認 18print(pearsonr(df.days, df.value)) 19
試したこと
列daysが数値型ではないからエラーが出るのだと考え、次のコードを書いて型変換をしようとしました。
python
1 2# 数値型への変換 3df['days'] = df['days'].astype('int') 4
しかし、以下のようなエラーが出ました。
python
1 2TypeError: cannot astype a timedelta from [timedelta64[ns]] to [int32] 3

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/31 16:56