去除与Pandas中相邻点偏离太多的点

问题描述 投票:2回答:1

所以我在Pandas做一些时间序列分析,并且有一种特殊的异常值模式,我想删除它。波纹管图基于数据框,第一列为日期,第二列为数据

enter image description here

你可以看到那些散布着类似值的点,看起来像线条可能是仪器怪癖,应该被删除。香港专业教育学院尝试使用rolling_mean,中位数和删除基于标准偏差无济于事。对于密度的概念,它从1984年到现在的每日测量。有任何想法吗?

auge = pd.read_csv('GaugeData.csv', parse_dates=[0], header=None)
gauge.columns = ['Date', 'Gauge']
gauge = gauge.set_index(['Date'])
gauge['1990':'1995'].plot(style='*')  

并且应用滚动中位数的结果

gauge = pd.rolling_mean(gauge, 5, center=True)#gauge.diff()
gauge['1990':'1995'].plot(style='*')

After rolling median

python pandas scipy time-series data-analysis
1个回答
0
投票

您可以要求每个数据点在特定距离“D”内至少具有“N”“附近”数据点。

  • N可以是2或更多。
  • 附近的元素规[i]可以是一对像:gauge [i-1]和gauge [i + 1],但由于一些只有一边有邻居,你可以要求至少两个带有索引距离的元素(日期) )小于2.因此,假设{gauge [i-2],gauge [i-1] gauge [i + 1],gauge [i + 2]}中的至少2个应满足:Distance(gauge [i] ,gauge [ix])<D
  • D - 您可以根据您对这些真实数据点的接近程度来决定这一点。

它不是完美的,但它应该从数据集中获得大部分噪声。

© www.soinside.com 2019 - 2024. All rights reserved.