時系列データの日時の列をpd.to_datetimeで変換し、それをpivot_tableで整形しようとしているのですが、エラーが出てしまいます。
元のデータフレーム(df)は以下になります(Date-Time列はpd.to_datetime処理後)。
#RIC Date-Time Actual
0 DEBUSS=ECI 2004-05-21 21:05:59.920529 96.1
1 DEBUSS=ECI 2004-05-21 21:05:59.920529 96.1
2 DEBUSS=ECI 2004-05-21 21:05:59.920529 96.1
3 DEBUSS=ECI 2004-05-23 21:17:44.859056 96.1
4 DEBUSS=ECI 2004-05-23 21:17:44.859056 96.2
これに対して下記コードを入れました。
df.pivot_table('Date-Time','#RIC','Actual')
すると下記エラーが出ます。
DataError: No numeric types to aggregate
まずDate-Time列に同じ時間が入っていることやデータ型が違うようなので、型変換やresample('D').meanを試みたのですが、下記のとおりうまくいきませんでした(Date-time列は最終的には日単位に、Actual列はmean値にしたいと考えています)。
TypeError: Only valid with DatetimeIndex, TimedeltaIndex or PeriodIndex, but got an instance of 'Int64Index'
いつも初歩的でご迷惑をおかけ致しますが、よろしくお願いいたします。
2017/9/29 17:25追記
ファイルを読み込む段階でindex_colsとparse_datesを指定してから、欠損値を
df=df[df.Actual!=0]
df=df.dropna(thresh=2)
で消去した結果、
#RIC Actual
Date-Time
2004-05-25 08:00:01.499292 DEBUSS=ECI 96.1
2004-05-25 09:27:36.303337 DEBUSS=ECI 96.1
2004-05-25 09:27:36.394152 DEBUSS=ECI 96.1
2004-05-25 09:46:02.514259 DEBUSS=ECI 96.1
ここまできました。次にdf=df.resample('D')としたのですが、ここでエラーになりました。
エラーメッセージは
ataError: No numeric types to aggregate
でした。
回答1件
あなたの回答
tips
プレビュー