问题描述
我正在尝试从pandas DataFrame中的列中删除异常值。
这是我的变量最初的样子(带有明显的异常值):
然后,我决定删除所有变化为+/- 3的内容(因为我知道应该不会有太大的变化):
这有效,并且让我用NaN代替了尖峰:
但是,每当我尝试用以前的观察结果替换现在缺少的值时,我都会以某种方式返回一些峰值!
有人会知道我在做什么错吗?
这是完整的代码(在不定期的while循环中):
df = pd.DataFrame({'soc': [38.0,38.0,127.0,66.48,55.8,38.0]})
while (abs(df['soc'].diff()) > 3).any():
df['soc'] = np.where(abs(df['soc'].diff()) > 3,np.nan,df['soc'])
df['soc'].fillna(method='ffill',inplace=True)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)