如何使用python过滤数据集中未使用的数据



我有一个数据集:不同范围的温度和压力值。我想过滤掉所有偏离"x"%以上的数据;正常的";价值此数据发生在进程故障时。

额外:正常值可能会在更长的时间内发生变化,因此时间戳1处的异常在时间戳2处可能是正常的。

我看了一些噪音过滤器,但我不确定这是噪音。

您问了两个问题。

1

处理派生列,因此很容易进行筛选。

对于";x%";,比如5%,你可以使用

avg = np.mean(df.pressure)
df['pres_deviation'] = abs(df.pressure - avg) / avg
print(df[df.pres_deviation < .05])

但是,与其用百分比来工作,你可能会发现处理标准偏差更自然,从平均值中过滤出例如超过三个标准偏差的值。参见

  • https://en.wikipedia.org/wiki/Standard_score
  • sklearn标准缩放器

2

(额外:正常值可能随时间变化。(

您可以使用";最近的100个样本";要定义平滑平均值,请将其存储为一个额外的列,并替换上面计算中的avg标量。

一般来说,您可以手动将高/低阈值设置为数据中的时间序列。

你所描述的区域被称为";"变化点检测";,我们发现了大量关于它的文献,例如。https://paperswithcode.com/task/change-point-detection。我用过破裂的方法效果很好,我推荐给你。

最新更新