我正在尝试找到一种方法,将设计用于大数据帧的算法应用于非常小的数据帧,因为该想法是从无线传感器动态接收每一行数据,并且它仅适用于2个数据帧或3行。
我遇到的一个问题是,我在算法中使用的异常值检测方法似乎不适用于行数少于10的数据帧。
我正在使用的数据来自具有三列的.xlsx文件:“ ID”,“ Temperature”和“ Date”。我应用于算法的离群值测试是中值绝对偏差:
dfn=df[(np.abs(stats.zscore(df['Temperature']))<4)]
尝试将算法用于9行数据时获得的错误消息如下:
/home/.../scipy/stats/stats.py:2419: RuntimeWarning: invalid value encountered in true_divide
return (a - mns) / sstd
Metodo3in.py:20: RuntimeWarning: invalid value encountered in less
然后代码仍然执行,但是我得到:
Empty DataFrame
Columns: [ID,Temperature,Date]
Index:[]
问题
任何帮助将不胜感激!
stats.zscore
适用于任何长度大于1的输入数据。当所有温度均相等时,就会发生此问题。在这种情况下,zscore
的结果全部为np.nan
,这导致空结果数据帧,因为与nan
的任何比较都会得出False
: