gpt4 book ai didi

python - 通过 Pandas 数据框中的特定列检测行中的异常值

转载 作者:太空宇宙 更新时间:2023-11-04 00:20:17 25 4
gpt4 key购买 nike

我有测量特定列中电压值的数据集。我正在寻找优雅的方法来提取偏离平均值的行。 “volt_id”中有几个组,我想让每个组创建自己的均值/标准并使用它们来决定哪些行偏离每个组。例如,我有如下原始数据集。

      time     volt_id     value
0 14 A 300.00
1 15 A 310.00
2 15 B 200.00
3 16 B 210.00
4 17 B 300.00
5 14 C 100.00
6 16 C 110.00
7 20 C 200.00

算法运行后,我只保留第 4 行和第 7 行,如下所示。

      time     volt_id     value
4 17 B 300.00
7 20 C 200.00

如果只有一个组,我可以这样做,但如果对多个组执行此操作,我的代码将变得困惑和冗长。如果有更简单的方法来执行此操作,我将不胜感激。

谢谢,

最佳答案

您可以计算和过滤 zscore在每个 group 上使用 groupby

假设您只想要那些与均值相差 1 个或更多标准差的行,

g = df.groupby('volt_id').value
v = (df.value - g.transform('mean')) / g.transform('std')

df[v.abs().ge(1)]

time volt_id value
4 17 B 300.0
7 20 C 200.0

关于python - 通过 Pandas 数据框中的特定列检测行中的异常值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49373571/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com