高速フーリエ変換信号用のDataFrameがあります。ローリング標準偏差を使用してPandasデータフレームの異常値を検出する
周波数はHzで1列あり、対応する振幅で1列あります。
私は2,3年前に書かれたポストを読みました。単純なブール関数を使用して、いくつかの標準偏差よりも上または下の最終データフレーム内のアウトライアを除外することができます。
df = pd.DataFrame({'Data':np.random.normal(size=200)}) # example dataset of normally distributed data.
df[~(np.abs(df.Data-df.Data.mean())>(3*df.Data.std()))] # or if you prefer the other way around
問題は、周波数が50,000Hzまで増加すると、私の信号がいくつかの大きさ(最大10,000倍小さくなります)になります。したがって、私は最初の50Hzから "ピーク"の外れ値だけを取り上げるので、3標準偏差以上の値をエクスポートする関数は使用できません。
ローリング平均の3つのローリング標準偏差を超える外れ値をデータフレームにエクスポートする方法はありますか?
私はエクスポートする前に、私のデータフレームの別の列に(平均+ 3SDより大きい)フィルタリングされたすべての値を追加しようとしています。 N1 ['Peaks'] =(N1 ['Cell 1-1']> N1 ['Filter']) '代わりに数字を得る方法はありますか? Cell 1-1とFilterの列は、自分のデータとフィルタの値です。 – Jack