前提・実現したいこと
https://qiita.com/hoto17296/items/d337fe0215907432d754
こちらのサイトを参考にし、時系列データにおけるノイズ処理を行いたいと思いましたが、どのように外れ値データを除去すればよいのかで行き詰っています、、、
該当のソースコード
import pandas as pd import matplotlib.pyplot as plt import matplotlib.dates as dt import calendar import datetime from matplotlib.dates import date2num year=2010 plt.rcParams["font.family"]='Times New Roman' plt.rcParams["mathtext.fontset"]='stix' df=pd.read_csv(f'dowsing{year}-wavenet-site.csv',header=None, skiprows=1,)[[0,1,2]] df.columns=["Time (GMT)", "Dominant (peak) wave period (s)", "Significant wave height (Hm0) (m)"] df['Time (GMT)']=pd.to_datetime(df['Time (GMT)']) df['Time (GMT)'] data=df.set_index("Time (GMT)") ts=data['Dominant (peak) wave period (s)']/1.1 ewm_mean = ts.ewm(span=90).mean() # 指数加重移動平均 ewm_std = ts.ewm(span=90).std() # 指数加重移動標準偏差 outlier = ts[(ts - ewm_mean).abs() > ewm_std * 2]
試したこと
上記のコードで、外れ値のdfを取得することはできましたが、そのあとどのように元のデータからoutlierのデータを除去し、前後の値の平均値で埋めるという処理をすればよいのかがわかりません、、
補足情報(FW/ツールのバージョンなど)
python3
jupyter notebook
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/01/17 07:18
2022/01/17 12:23 編集
2022/01/19 11:32