0
我有一個用於快速傅立葉變換信號的DataFrame。使用滾動標準偏差檢測Pandas數據框中的離羣值
有一列頻率爲Hz,另一列爲相應的幅度。
我讀過幾年前發佈的一篇文章,您可以使用簡單的布爾函數來排除或僅包含最終數據框中高於或低於幾個標準偏差的異常值。
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
的問題是,我的信號下降幾個數量級(最多小10 000倍),其頻率的增加可達50 000Hz。因此,我無法使用僅輸出高於3個標準差的值的函數,因爲我只會從前50赫茲中挑選出「峯值」異常值。
有沒有一種方法可以在我的數據框中導出超出滾動平均值的3個滾動標準偏差的異常值?
所以我想在導出之前將所有過濾的值(大於我的平均值+ 3SD)添加到我的數據框中的另一列中。現在他們只顯示爲真或假,從'N1 ['Peaks'] =(N1 ['Cell 1-1']> N1 ['Filter'])'有沒有辦法得到數字呢?單元格1-1和過濾器只是我的數據和過濾器的值。 – Jack