根据另一列的值将值转换为负数

2023-12-04

我有一个 df 我想在其中转换列中的值b如果列中的相应值为负数a is not NaN.

这是我的代码:

# create a test df
df = pd.DataFrame(np.array([[12, 34], [67, 98], [np.nan, 6], [23, 45], [np.nan, 5], [5, 82], [61, 92]]), columns=['a', 'b'])

print(df)
    a   b
0   12.0    34.0
1   67.0    98.0
2   NaN     6.0
3   23.0    45.0
4   NaN     5.0


# the code to convert b to negative if a is not NaN
df['b'] = df['b'].apply(lambda x: -x if df['a'] != pd.isnull else x)

这是收到的错误:

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all()

我试图查找错误代码,但我不明白发生了什么。我正在使用 lambda 但不确定是否有更好的方法。 df 应如下所示:


    a   b
0   12.0    -34.0
1   67.0    -98.0
2   NaN     6.0
3   23.0    -45.0
4   NaN     5.0

一句简单的话就能给你你想要的专栏:

df['b'].where(df['a'].isna(), -df['b'])

或者如果你想修改df到位:

df.loc[df['a'].isna(), 'b'] *= -1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

根据另一列的值将值转换为负数 的相关文章

  • 将 bash 脚本转换为 python(小脚本)

    我有一个在 Linux 环境中使用的 bash 脚本 但现在我必须在 Windows 平台上使用它 并且希望将 bash 脚本转换为可以运行的 python 脚本 bash 脚本相当简单 我认为 我尝试通过 google 转换它 但无法成功
  • “foreach”并行循环返回 s

    我正在尝试并行处理多个列表项 我的目标是 根据每列的值运行一些标签函数 然后返回带有节点名称 列名称和处理后的标签的数据帧 使用普通的 for 循环 工作流程可以正常工作 但是 当我尝试在 foreach 循环中执行相同的操作时 返回的结果
  • 如何准备图像分类的训练数据

    我是机器学习新手 在图像分类方面遇到一些问题 使用简单的分类器技术 K 最近邻居 我试图区分猫和狗 到目前为止我的代码 import pandas as pd import numpy as np import seaborn as sns
  • pandas 中任意列表的笛卡尔积[重复]

    这个问题在这里已经有答案了 给定任意数量的列表 我想生成一个 pandasDataFrame作为笛卡尔积 例如 给定 a 1 2 3 b val1 val2 c 100 101 我想最终得到一个DataFrame有柱子a b and c 以
  • 在 pandas 数据框中进行 groupby 后滚动前 3 个月的唯一计数

    以下是数据框 Date Name data 01 01 2017 Alpha A 02 01 2017 Alpha A 03 01 2017 Alpha B 01 01 2017 Beta A 01 20 2017 Beta D 03 01
  • 构造稀疏矩阵后,从稀疏到密集再到稀疏的转换会再次降低密度

    我使用 scipy 生成稀疏有限差分矩阵 最初从块矩阵构建它 然后编辑对角线以考虑边界条件 得到的稀疏矩阵是BSR类型的 我发现如果我将矩阵转换为稠密矩阵 然后使用以下命令返回稀疏矩阵scipy sparse BSR matrix函数 我留
  • pandas 数据框到键值对

    将以下 pandas 数据帧转换为键值对的最佳方法是什么 Before datetime name qty price 2017 11 01 10 20 apple 5 1 2017 11 01 11 20 pear 2 1 5 2017
  • “发射后不管” python async/await

    有时需要发生一些非关键的异步操作 但我不想等待它完成 在 Tornado 的协程实现中 您可以通过简单地省略来 触发并忘记 异步函数yield关键词 我一直在试图弄清楚如何用新的方式 发射后忘记 async awaitPython 3 5
  • Django:如何从模型中验证 unique_together

    我有以下内容 class AccountAdmin models Model account models ForeignKey Account is master models BooleanField name models CharF
  • 出现操作错误:致命:抱歉,太多客户端已经在使用 psycopg2

    我在使用 psycopg2 时收到错误 OperationalError FATAL 抱歉 已有太多客户端 完成连接实例后 我将调用 close 方法 我不确定是什么原因造成的 这是我第一次使用 python 和 postgresql 但我
  • 在 dplyr tbl_df 中获取删除列的最佳实践

    我记得 2001 年 r help 上的一条评论说drop TRUE in data frame是 R 历史上最糟糕的设计决策 dplyr纠正这一点并且不会隐式删除 当尝试将旧代码转换为dplyr风格 这会引入一些讨厌的错误d 1 or d
  • PYTHON:如何将星号 (*) 作为命令行参数传递

    我正在尝试制作一个 python 脚本来搜索文件中的单词 如果我通过了txt它只会在文件中查找 txt扩展名 但我想通过 作为搜索参数every files if sys argv 4 不工作 如果我尝试 print sys argv 4
  • pytest 在参数化中使用固定装置作为参数

    我想使用固定装置作为参数pytest mark parametrize或者会产 生相同结果的东西 例如 import pytest import my package pytest fixture def dir1 fixture retu
  • 如何在Python多处理中的所有进程之间共享数据?

    我想在给定文章中搜索预定义的关键字列表 如果在文章中找到关键字 则分数加 1 我想使用多重处理 因为预定义的关键字列表非常大 10k 个关键字 文章数量为 100k 我碰到this https stackoverflow com quest
  • 执行源代码时忽略导入错误

    我有一个应用程序 它读取 python 中的测试脚本并将其通过网络发送以在远程 python 实例上执行 由于控制程序不需要运行这些脚本 我不想将测试脚本使用的所有模块安装在控制器的 python 环境中 然而 控制器确实需要来自测试脚本的
  • 有条件的正则表达式替换

    使用Python 您可以在替换文本之前检查组是否为空 Example user John Marshal gt user br strong Jonh Marshal strong John Marshal gt strong Jonh M
  • 在 python numpy 中构建一个 nxn 矩阵,对于任何 n

    是否可以使用 python 的 numpy 版本 3 3 编写构建 nxn 矩阵的代码 而不指定 n 我需要将条目索引为 A i j 或类似的东西 但我什至不知道如何定义 A i j 以便它们实际上是对象 我认为这样的事情可能会起作用 n
  • Python - 比较2个文件并输出差异

    我的目标是编写一个脚本来比较文件中的每一行 并根据此比较创建一个新文件 其中包含第二个文件中不存在的文本行 例如 File 1 Bob 20 Dan 50 Brad 34 Emma 32 Anne 43 File 2 Dan 50 Emma
  • 装饰器更改返回类型时键入函数

    如何正确编写返回类型被装饰器修改的函数的类型 简单的例子 def example decorator fn def wrapper data res fn data return join res return wrapper exampl
  • Python 函数作为后台进程运行

    我知道有很多方法可以让程序等待函数完成 但是有没有办法让函数一旦被调用 就在程序的后台继续执行 如果您正在制作一个程序计时器 如下所示 这可能特别有用 import time count 0 def timer while True tim

随机推荐

  • 使用 vbscript 隐藏打开指定 url 和指定浏览器的链接

    我想转换这个批处理命令 start msedge exe new window https www google com 到 vbscript 文件 这样我就可以隐藏地打开它 我试过这个 Set WshShell WScript Creat
  • Pdf 的字段应在 asp.net 中使用 itextsharp 保持可编辑状态

    我有一个可填写的pdf 其中我有几个文本框 我使用以下代码 itextsharp 填充这些字段 DataTable dt new DataTable String pdfPath1 Server MapPath pdfs transmitt
  • 大文字显得模糊

    我正在使用 SFML 1 6 制作一个小游戏 我需要显示一些文本 所以我使用sf String班级 问题是 当我将尺寸增加到 96pt 时 边缘显得有点模糊 不过 当我增加 Microsoft Word 中的文本大小时 它看起来非常干净并且
  • 如何用Python四舍五入到小数点后两位? [复制]

    这个问题在这里已经有答案了 我在这段代码的输出中得到了很多小数 华氏度到摄氏度转换器 我的代码目前如下所示 def main printC formeln typeHere def typeHere global Fahrenheit tr
  • 使用 bash 脚本将密钥代码发送到 Xorg + wine

    如何将密钥代码发送到在 wine 下运行的 linux 中当前运行的应用程序 为了简单起见 我希望它位于 bash 下 使用名为xvkbd 它应该存在于每个 Linux 发行版中 语法很简单 xvkbd text line of keyco
  • CGAffineTransform 连接:适当的转换顺序

    我知道 每当我们想要对一个点同时应用一系列变换时 我们必须指定与我们想要感知的相反方向的序列 如果我想翻译 T 然后旋转 R 一个点x我们需要以串联矩阵结束RT 那么每个点都变换为 RT x 苹果转型文档显示 CGAffineTransfo
  • gnuplot:在for循环中设置线条样式

    我必须在同一张图上绘制几条曲线 我必须使用 for 循环来做到这一点 我想用线绘制前两条曲线 用点绘制其他曲线 我可以用线绘制所有曲线或用点绘制所有曲线 但不能在同一个 for 循环中进行更改 这是我的代码的相关部分 set style l
  • 停止后台工作者

    我的应用程序使用后台工作人员在循环内执行一些工作 我拥有它 以便在每次循环迭代时 它检查取消挂起是否为真 如果是 则中断循环 一切正常 我的应用程序在完成循环的当前迭代后停止处理 问题是我认为后台工作人员仍在运行 如果我单击按钮再次开始处理
  • 在 Hibernate 中持久化 LinkedList

    我试图保留一个具有 LinkedList 属性的类 但似乎无法正确执行 这是我的代码和映射 import java util LinkedList public class Stuff implements java io Serializ
  • 强制刷新到 Observable.Buffer c#

    有没有办法强制 Observable Buffer 在缓冲时间结束之前刷新 在示例中 mSubscription mFluxObservable Buffer new TimeSpan 0 0 1 30 Subscribe o gt sav
  • App Store (iTunes Connect) 的 512x512 图像,Apple 会像在手机上那样进行圆角处理吗?

    将 iPhone 应用程序提交到 iTunes Connect 进行 AppStore 分发后 他们会要求提供 512x512 像素的图像 以下是提交位置旁边的内容 将在 App Store 上使用的应用程序图标的大版本 它必须至少为 72
  • 如何使用gekko估计FOPDT方程中的theta值?

    我正在尝试使用 GEKKO 来拟合某个数据集 使用 FOPDT 优化方法来估计 k tau 和 theta 我看到了使用 odeint 的示例https apmonitor com pdc index php Main FirstOrder
  • HIBERNATE - JPA2 - H2 - 按键查询@ElementCollections HashMap

    我正在使用 hibernate entitymanager 3 6 4 Final 和 h2 数据库 1 3 155 我正在使用 H2Dialect 我在按 ElementCollection 中的元素过滤记录时遇到问题 这是我的实体 En
  • BackReference 使用带有 Unicode 的 Python 正则表达式

    我使用 Python 2 7 使用 Google App Engine 以下是代码片段 coding utf 8 KEYWORD u 英語 URL u http www google com content u 和製英語 日本 作 英語風
  • 程序中得到意外的输出

    这是代码 String sql 1 select emp id password from regid ResultSet rs st executeQuery sql 1 while rs next if employee equals
  • 并行调用 async/await 函数

    据我了解 在 ES7 ES2016 中放置了多个await代码中的 的工作方式与链接类似 then 带有承诺 这意味着它们将一个接一个地执行 而不是并行执行 例如 我们有这样的代码 await someCall await anotherC
  • 使用 vkEnumerateInstanceVersion 获取准确的 Vulkan API 版本

    我在用vkEnumerateInstanceVersion获取 vulkan api 版本并将其传递给VkApplicationInfo结构 我可以轻松区分VK VERSION 1 0 and VK VERSION 1 1 query th
  • 取最近N天的平均值

    我有这个数据框 ID Date X 123 Var 456 Var 789 Var A 16 07 19 3 777 250 810 A 17 07 19 9 637 121 529 A 20 07 19 2 295 272 490 A 2
  • 从express/node.js应用程序提供静态文件

    大家好 我是一个新手 最近开始学习node 我学习了一个关于 websockets 的 Heroku 教程 https devcenter heroku com articles node websockets 并针对我正在从事的特定项目进
  • 根据另一列的值将值转换为负数

    我有一个 df 我想在其中转换列中的值b如果列中的相应值为负数a is not NaN 这是我的代码 create a test df df pd DataFrame np array 12 34 67 98 np nan 6 23 45