前提・実現したいこと
python にて 秒単位の時系列データを 一分毎のRMSを計算したいと考えております。
resampleを使用し60秒ごとの sum,meanは可能でしたが RMSはできませんでした。
解決したい事、1分ごとにdataを抽出してRMS計算をしたい。
dataは 毎回60秒あると限らないのでdataを順番にデータ数で抽出だと目的にそぐわない
print(dfdf.resample('60s').sum()) については 上手くできました。
print(np.sqrt(np.square(dfdf.resample('60s')).mean())) が上手くいきませんでした。
for文とかを使うと良いのでしょうか?
やり方にこだわりはありません。
プログラミング初心者のため 質問の仕方も不明点あるかと思いますが。宜しくお願い致します。
df dataは 以下になります
DATE_TIME グラム値
2018/3/3 0:00:32 1.65
2018/3/3 0:00:33 8.76
2018/3/3 0:00:34 9.46
2018/3/3 0:00:35 5.86
2018/3/3 0:00:36 6.73
2018/3/3 0:00:37 8.34
2018/3/3 0:00:38 9.43
2018/3/3 0:00:39 8.46
2018/3/3 0:00:40 6.77
2018/3/3 0:00:41 7.622142857
2018/3/3 0:00:42 7.543452381
2018/3/3 0:00:43 7.464761905
2018/3/3 0:00:44 7.386071429
2018/3/3 0:00:45 7.307380952
2018/3/3 0:00:46 7.228690476
2018/3/3 0:00:47 7.15
2018/3/3 0:00:48 7.071309524
2018/3/3 0:00:49 6.992619048
2018/3/3 0:00:50 6.913928571
2018/3/3 0:00:51 6.835238095
2018/3/3 0:00:52 6.756547619
2018/3/3 0:00:53 6.677857143
2018/3/3 0:00:54 6.599166667
2018/3/3 0:00:55 6.52047619
2018/3/3 0:00:56 6.441785714
2018/3/3 0:00:57 6.363095238
2018/3/3 0:00:58 6.284404762
2018/3/3 0:00:59 6.205714286
2018/3/3 0:01:00 6.12702381
2018/3/3 0:01:01 6.048333333
2018/3/3 0:01:02 5.969642857
2018/3/3 0:01:03 5.890952381
2018/3/3 0:01:04 5.812261905
2018/3/3 0:01:05 5.733571429
2018/3/3 0:01:06 5.654880952
2018/3/3 0:01:07 5.576190476
2018/3/3 0:01:08 5.4975
2018/3/3 0:01:09 5.418809524
2018/3/3 0:01:10 5.340119048
2018/3/3 0:01:11 5.261428571
2018/3/3 0:01:12 5.182738095
2018/3/3 0:01:13 5.104047619
2018/3/3 0:01:14 5.025357143
2018/3/3 0:01:15 4.946666667
2018/3/3 0:01:32 4.86797619
2018/3/3 0:01:33 4.789285714
2018/3/3 0:01:34 4.710595238
2018/3/3 0:01:35 4.631904762
2018/3/3 0:01:36 8.46
2018/3/3 0:01:37 6.77
2018/3/3 0:01:38 7.622142857
2018/3/3 0:01:39 7.543452381
2018/3/3 0:01:40 7.464761905
2018/3/3 0:01:41 7.386071429
2018/3/3 0:01:42 7.307380952
2018/3/3 0:01:43 7.228690476
2018/3/3 0:01:44 3.923690476
2018/3/3 0:01:45 3.845
2018/3/3 0:01:46 3.766309524
2018/3/3 0:01:47 3.687619048
2018/3/3 0:01:48 3.608928571
2018/3/3 0:01:49 3.530238095
2018/3/3 0:01:50 3.451547619
2018/3/3 0:01:51 8.46
2018/3/3 0:01:52 6.77
2018/3/3 0:01:53 7.622142857
2018/3/3 0:01:54 7.543452381
2018/3/3 0:01:55 7.464761905
2018/3/3 0:01:56 7.386071429
2018/3/3 0:01:57 7.307380952
2018/3/3 0:01:58 7.228690476
2018/3/3 0:01:59 4.789285714
2018/3/3 0:02:00 4.710595238
2018/3/3 0:02:01 4.631904762
2018/3/3 0:02:02 8.46
2018/3/3 0:02:03 6.77
2018/3/3 0:02:04 7.6221
2018/3/3 0:02:07 6.7795
2018/3/3 0:02:08 6.360595238
2018/3/3 0:02:09 5.941666667
2018/3/3 0:02:25 5.522738095
2018/3/3 0:02:26 5.103809524
2018/3/3 0:02:27 4.684880952
2018/3/3 0:02:28 4.265952381
2018/3/3 0:02:29 7.543452381
2018/3/3 0:02:30 7.464761905
2018/3/3 0:02:31 7.386071429
発生している問題・エラーメッセージ
Traceback (most recent call last): File "<ipython-input-172-34e99fcee3ec>", line 1, in <module> print(np.sqrt(np.square(tr.resample('60s')).mean())) TypeError: unsupported operand type(s) for *: 'Timestamp' and 'Timestamp'
該当のソースコード
python dfdf = pd.read_csv(df, header = 0, infer_datetime_format = True, engine = 'python') dfdf['DATE_TIME']=pd.to_datetime(dfdf['DATE_TIME'],format='%Y-%m-%d %H:%M:%S') dfdf.set_index('DATE_TIME', inplace=True) print(dfdf.resample('60s').sum()) print(np.sqrt(np.square(dfdf.resample('60s')).mean()))
試したこと
以下も 試しましたが Errorが出てしまいました。
v = dfdf.resample('60s')
Error
<pandas.core.resample.DatetimeIndexResampler object at 0x0000020852243CC8>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/10/18 15:27