删除异常值 (+/- 3 std) 并替换为 Python/pandas 中的 np.nan

2023-11-30

我看到了几种接近解决我的问题的解决方案

link1 link2

但到目前为止,他们还没有帮助我取得成功。

我相信以下解决方案是我所需要的,但仍然出现错误(并且我没有声誉点对其进行评论/提问):link

(我收到以下错误,但我不明白在哪里.copy()或添加一个“inplace=True“当执行以下命令时df2=df.groupby('install_site').transform(replace):

设置复制警告: 尝试在 DataFrame 的切片副本上设置一个值。 尝试使用.loc[row_indexer,col_indexer] = value instead

请参阅文档中的警告:link

所以,我试图提出自己的版本,但我一直陷入困境。开始。

我有一个按时间索引的数据框,其中包含站点列(许多不同站点的字符串值)和浮点值。

time_index            site       val

我想浏览“val”列,按站点分组,并用 NaN(对于每个组)替换任何异常值(与平均值相差+/- 3 个标准差的值)。

当我使用以下函数时,我无法使用 True/Falses 向量索引数据框:

def replace_outliers_with_nan(df, stdvs):
    dfnew=pd.DataFrame()
    for i, col in enumerate(df.sites.unique()):
        dftmp = pd.DataFrame(df[df.sites==col])
        idx = [np.abs(dftmp-dftmp.mean())<=(stdvs*dftmp.std())] #boolean vector of T/F's
        dftmp[idx==False]=np.nan  #this is where the problem lies, I believe
        dfnew[col] = dftmp
    return dfnew

此外,我担心上述函数在 700 万行以上的行上会花费很长时间,这就是为什么我希望使用 groupby 函数选项。


如果我理解正确,则无需遍历列。该解决方案将偏差超过三组标准差的所有值替换为 NaN。

def replace(group, stds):
    group[np.abs(group - group.mean()) > stds * group.std()] = np.nan
    return group

# df is your DataFrame
df.loc[:, df.columns != group_column] = df.groupby(group_column).transform(lambda g: replace(g, 3))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

删除异常值 (+/- 3 std) 并替换为 Python/pandas 中的 np.nan 的相关文章

  • 下载 PyQt6 的 Qt Designer 并使用 pyuic6 将 .ui 文件转换为 .py 文件

    如何下载 PyQt6 的 QtDesigner 如果没有适用于 PyQt6 的 QtDesigner 我也可以使用 PyQt5 的 QtDesigner 但是如何将此 ui 文件转换为使用 PyQt6 库而不是 PyQt5 的 py 文件
  • 使用 openCV 对图像中的子图像进行通用检测

    免责声明 我是计算机视觉菜鸟 我看过很多关于如何在较大图像中查找特定子图像的堆栈溢出帖子 我的用例有点不同 因为我不希望它是具体的 而且我不确定如何做到这一点 如果可能的话 但我感觉应该如此 我有大量图像数据集 有时 其中一些图像是数据集的
  • Pycharm Python 控制台不打印输出

    我有一个从 Pycharm python 控制台调用的函数 但没有显示输出 In 2 def problem1 6 for i in range 1 101 2 print i end In 3 problem1 6 In 4 另一方面 像
  • 如何在 Sublime Text 2 的 OSX 终端中显示构建结果

    我刚刚从 TextMate 切换到 Sublime Text 2 我非常喜欢它 让我困扰的一件事是默认的构建结果显示在 ST2 的底部 我的程序产生一些很长的结果 显示它的理想方式 如在 TM2 中 是并排查看它们 如何在 Mac 操作系统
  • 更改自动插入 tkinter 小部件的文本颜色

    我有一个文本框小部件 其中插入了三条消息 一条是开始消息 一条是结束消息 一条是在 单位 被摧毁时发出警报的消息 我希望开始和结束消息是黑色的 但被毁坏的消息 参见我在代码中评论的位置 插入小部件时颜色为红色 我不太确定如何去做这件事 我看
  • IRichBolt 在storm-1.0.0 和 pyleus-0.3.0 上运行拓扑时出错

    我正在运行风暴拓扑 pyleus verbose local xyz topology jar using storm 1 0 0 pyleus 0 3 0 centos 6 6并得到错误 线程 main java lang NoClass
  • Python:尝试检查有效的电话号码

    我正在尝试编写一个接受以下格式的电话号码的程序XXX XXX XXXX并将条目中的任何字母翻译为其相应的数字 现在我有了这个 如果启动不正确 它将允许您重新输入正确的数字 然后它会翻译输入的原始数字 我该如何解决 def main phon
  • 循环中断打破tqdm

    下面的简单代码使用tqdm https github com tqdm tqdm在循环迭代时显示进度条 import tqdm for f in tqdm tqdm range 100000000 if f gt 100000000 4 b
  • Python - 按月对日期进行分组

    这是一个简单的问题 起初我认为很简单而忽略了它 一个小时过去了 我不太确定 所以 我有一个Python列表datetime对象 我想用图表来表示它们 x 值是年份和月份 y 值是此列表中本月发生的日期对象的数量 也许一个例子可以更好地证明这
  • 通过数据框与函数进行交互

    如果我有这样的日期框架 氮 EG 00 04 NEG 04 08 NEG 08 12 NEG 12 16 NEG 16 20 NEG 20 24 datum von 2017 10 12 21 69 15 36 0 87 1 42 0 76
  • 从 pygame 获取 numpy 数组

    我想通过 python 访问我的网络摄像头 不幸的是 由于网络摄像头的原因 openCV 无法工作 Pygame camera 使用以下代码就像魅力一样 from pygame import camera display camera in
  • 在Python中重置生成器对象

    我有一个由多个yield 返回的生成器对象 准备调用该生成器是相当耗时的操作 这就是为什么我想多次重复使用生成器 y FunctionWithYield for x in y print x here must be something t
  • 设置 torch.gather(...) 调用的结果

    我有一个形状为 n x m 的 2D pytorch 张量 我想使用索引列表来索引第二个维度 可以使用 torch gather 完成 然后然后还设置新值到索引的结果 Example data torch tensor 0 1 2 3 4
  • 在 Pandas DataFrame Python 中添加新列[重复]

    这个问题在这里已经有答案了 例如 我在 Pandas 中有数据框 Col1 Col2 A 1 B 2 C 3 现在 如果我想再添加一个名为 Col3 的列 并且该值基于 Col2 式中 如果Col2 gt 1 则Col3为0 否则为1 所以
  • 从 Python 中的类元信息对 __init__ 函数进行类型提示

    我想做的是复制什么SQLAlchemy确实 以其DeclarativeMeta班级 有了这段代码 from sqlalchemy import Column Integer String from sqlalchemy ext declar
  • 协方差矩阵的对角元素不是 1 pandas/numpy

    我有以下数据框 A B 0 1 5 1 2 6 2 3 7 3 4 8 我想计算协方差 a df iloc 0 values b df iloc 1 values 使用 numpy 作为 cov numpy cov a b I get ar
  • Spark.read 在 Databricks 中给出 KrbException

    我正在尝试从 databricks 笔记本连接到 SQL 数据库 以下是我的代码 jdbcDF spark read format com microsoft sqlserver jdbc spark option url jdbc sql
  • 改变字典的哈希函数

    按照此question https stackoverflow com questions 37100390 towards understanding dictionaries 我们知道两个不同的字典 dict 1 and dict 2例
  • Python 分析:“‘select.poll’对象的‘poll’方法”是什么?

    我已经使用 python 分析了我的 python 代码cProfile模块并得到以下结果 ncalls tottime percall cumtime percall filename lineno function 13937860 9
  • Pandas 与 Numpy 数据帧

    看这几行代码 df2 df copy df2 1 df 1 df 1 values 1 df2 ix 0 0 我们的教练说我们需要使用 values属性来访问底层的 numpy 数组 否则我们的代码将无法工作 我知道 pandas Data

随机推荐

  • 使用 Ruby 驱动程序的 MongoDB Group

    我正在尝试带回一个包含用于描述博客文章的计数的年 月组合列表 我们的想法是 它们将像这样显示 2010 年 1 月 1 篇文章 2009 年 12 月 2 个职位 我已经设法使用 MongoDB JS shell 让它工作 并且它以有用的格
  • PHP-PDO从数据库获取元数据

    我想从带有 朋友 表的数据库中获取元数据 id name 1 Herbert 2 LG 3 Levins 这是我试图获取数据的代码
  • 如何正确手动重新创建 sklearn (python) 逻辑回归 Predict_proba 结果以进行多重分类

    如果我运行 4 个类的基本逻辑回归 我可以获得 Predict proba 数组 如何使用系数和截距手动计算概率 获得与 Predict proba 生成的相同答案的确切步骤是什么 网上似乎有很多关于此的问题和一些建议 这些建议要么不完整
  • Android 中不显示选项菜单

    我有这个代码来创建菜单 Override public boolean onCreateOptionsMenu Menu menu super onCreateOptionsMenu menu MenuInflater inflater g
  • 风格化文本以针对不同语言使用不同字体?

    有没有一种方法可以对 HTML 页面上的文本进行样式化 以便它针对不同的语言自动使用不同的字体 我的网站使用英语和阿拉伯语 我想根据显示的语言使用不同的字体 假设我有这样的一段 上一句是阿拉伯语 但这一句是英语 我希望阿拉伯语句子用 X 字
  • 当 SimpleXML 解析带有特殊字符的 XML 时会发生什么?

    我正在尝试用我的最终输出来解决这个问题 XML 提要看起来像这样
  • UIView动画

    我正在尝试制作动画UIView这里 它看起来像一个矩形 我只想将其转换为我的坐标 那么 我怎样才能让它动起来呢 我试图找到一些教程 但没有成功 在iOS 4中 UIView块动画方法是最简单的 UIView animateWithDurat
  • 什么是 JSTL 强制 Jars

    我是新人 刚刚开始学习Java 来自jstltag 我对jstl了解很多 我使用IDE eclipse mars 通过添加一个简单的jsp页面来创建一个动态Web项目 然后将war导出到tomcat 7的webapps文件夹中 我对jstl
  • Leaflet - 如何查找现有标记并删除标记?

    我已经开始使用传单作为开源地图 http leaflet cloudmade com 以下 jQuery 代码将允许在单击地图时在地图上创建标记 map on click onMapClick function onMapClick e v
  • 向表单验证添加错误不起作用?

    根据有关表单验证的语义 UI 文档 我可以手动添加错误 添加错误 错误 给定数组错误 将错误添加到表单中 我想使用此功能 因为我通过 AJAX 提交表单 进行服务器端验证 然后想要显示结果 我尝试了以下代码 my form form add
  • spring默认作用域是否是单例?

    你能解释一下为什么Spring要为如下所示的bean配置创建两个对象吗 因为默认情况下spring的默认作用域是单例的 Spring的配置在这里
  • 寻找具有 3 个 CGPoint 的角度

    在我的应用程序中 用户点击 3 次 点击的 3 个点将创建一个角度 它完美地绘制了角度 我试图计算第二次点击时的角度 但我认为我做错了 可能是数学错误 我还没有在微积分课上讨论这个问题 所以我将使用维基百科上的公式 http en wiki
  • 无法从派生类型的范围访问另一个实例的受保护成员

    In 这个答案对于这个问题 为什么我的对象无法访问公共基类中定义的另一个对象的受保护成员 可以读作 您只能从您自己的基类实例访问受保护的成员 要么我没有正确理解 要么关注 MCVE 在 coliru 上直播 证明它是错误的 struct B
  • Android 上是否有类似于 Windows Phone 7 上的全景或枢轴 UI 控件?

    有谁知道是否有一个适用于 Android 的 UI 小部件 类似于 Windows Phone 7 全景或枢轴控件 如果没有 是否有任何教程可以指导我走上实现自己的正确道路 任何帮助表示赞赏 谢谢 是的 我也对枢轴控件感兴趣 这是我找到的类
  • 避免 GRPC 服务器中的端口冲突

    我目前正在考虑 GRPC 来满足我的实时需求 我注意到在示例中我们明确要求绑定到服务器中的硬编码端口 我希望将服务器部署在像 Heroku 这样的 Stack 上 想象一下 我将端口设置为 9090 并且该端口当前正被另一个服务使用 这不会
  • R:每月汇总行数

    我制作了一个数据框 其中有一列包含日期和一列包含数值 我希望这个数据框按月进行分组 并汇总每个相应月份其他列中的所有数值 这是我的数据框示例 capture date Test1 Test2 Test3 2016 03 18 0 1 1 2
  • 如何在 Vue 2 中包含 css 文件

    我是 vue js 新手 正在尝试学习这个 我在我的系统中安装了全新版本的 vue webpack 我有一个 css js 和这个主题模板的图像 我想将其包含到 HTML 中 所以我尝试将其添加到index html但我可以在控制台中看到错
  • 在没有 IDE 的情况下如何使用 CMSIS?

    我正在使用 STM32F103C8T6 并想使用 CMSIS 这本质上只是寄存器定义 没有代码 让我的生活更轻松 同时仍保持在较低水平 问题是我不知道如何安装该库以便在命令行上使用 Makefile 使用 所有文档似乎都与特定于供应商的 I
  • 从任何进程获取密钥

    我在网上看到了很多解决方案 但没有一个完全符合我的要求 当我的应用程序在后台运行时 在给定进程 不是我的控制台应用程序 中按下任何键的最佳 最简单方法是什么 我不需要修改器或任何东西 如果您不太关心按下哪个进程 最简单的方法是调用获取异步键
  • 删除异常值 (+/- 3 std) 并替换为 Python/pandas 中的 np.nan

    我看到了几种接近解决我的问题的解决方案 link1 link2 但到目前为止 他们还没有帮助我取得成功 我相信以下解决方案是我所需要的 但仍然出现错误 并且我没有声誉点对其进行评论 提问 link 我收到以下错误 但我不明白在哪里 copy