def filterout_outliers(l_data, l_date):
'''
Return a list with data filtered from outliers
:param l_data: list. data to be analyzed
'''
# === old code to filter outliers =======
# Q3 = np.percentile(l_data, 98)
# Q1 = np.percentile(l_data, 2)
# step = (Q3 - Q1) * 1.5
# step = max(3000., step)
# na_val = np.array(l_data)
# na_val = na_val[(na_val >= Q1 - step) & (na_val <= Q3 + step)]
# return na_val
# =======================================
# group by minute
df_filter = pd.Series(np.array(l_date)/60).astype(int)
l_filter = list((df_filter != df_filter.shift()).values)
l_filter[0] = True
l_filter[-1] = True
return np.array(pd.Series(l_data)[l_filter].values)
评论列表
文章目录