删除 Pandas 中与相邻点偏差太大的点
Posted
技术标签:
【中文标题】删除 Pandas 中与相邻点偏差太大的点【英文标题】:Removing points which deviate too much from adjacent point in Pandas 【发布时间】:2018-06-04 18:35:55 【问题描述】:所以我在 Pandas 中进行了一些时间序列分析,并且我想删除一个特殊的异常值模式。下图基于数据框,第一列为日期,第二列为数据
您可以看到那些具有相似值的点散布着,看起来像线条可能是仪器的怪癖,应该被删除。我试过同时使用rolling_mean、median 和removal 基于标准偏差无济于事。对于密度的概念,它从 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
【问题讨论】:
你的代码让你到达那个情节? @Dark 刚刚添加,它只是在 csv 中加载并绘制了一个合理的子集。这种模式贯穿始终 【参考方案1】:您可以要求每个数据点在一定距离“D”内至少有“N”个“附近”数据点。
N 可以是 2 或更多。 nearby for element gauge[i] 可以是一对,例如:gauge[i-1] 和 gauge[i+1],但由于有些只有一侧有邻居,您可以要求至少两个距离为 in索引(日期)小于 2。所以,假设 gauge[i-2], gauge[i-1] gauge[i+1], gauge[i+2] 中至少有 2 个应该满足: Distance(gauge [i], 量规[ix]) D - 您可以根据您期望这些真实数据点的接近程度来决定这一点。它并不完美,但它应该可以从数据集中消除大部分噪音。
【讨论】:
以上是关于删除 Pandas 中与相邻点偏差太大的点的主要内容,如果未能解决你的问题,请参考以下文章
origin7.5可以对曲线上差异大的点进行过滤,能平滑三维图的数据吗?