根据数据框中的信息在 Pandas 数据框中创建变量

2024-01-03

我有一个按以下方式组织的数据框

    var1   var2   var3   var4
0   A      23     B      7
1   B      13     C      4
2   C      12     A      11
3   A      5      C      15

我现在想要创建一个新变量(列)var5,如果 var1 == A,它采用 var2 的值;如果 var3 == A,它采用 var4 的值。为简单起见,var1 和 var3 永远不能同时具有值​​ A。如果 var1 或 var3 都不采用值 A,那么我想要 NaN。也就是说,本例中的结果将是:

    var1   var2   var3   var4  var5
0   A      23     B      7     23
1   B      13     C      4     NaN
2   C      12     A      11    11
3   A      5      C      15    5

如何才能实现这一目标?


Option 1
听起来你可以使用np.where为了这 -

i = df.var1 == 'A'
j = df.var3 == 'A'
df['var5'] = np.where(i, df.var2, np.where(j, df.var4, np.NaN))
df

  var1  var2 var3  var4  var5
0    A    23    B     7  23.0
1    B    13    C     4   NaN
2    C    12    A    11  11.0
3    A     5    C    15   5.0

Option 2
另一种选择是np.select -

df['var5'] = np.select([i, j], [df.var2, df.var4], default=np.nan)
df

  var1  var2 var3  var4  var5
0    A    23    B     7  23.0
1    B    13    C     4   NaN
2    C    12    A    11  11.0
3    A     5    C    15   5.0

Note, i and j与代码清单中定义的变量相同Option 1.


Option 3
pd.Series.mask/where

df.var2.mask(~i, df.var4.mask(~j, np.nan))

0    23.0
1     NaN
2    11.0
3     5.0
Name: var2, dtype: float64
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

根据数据框中的信息在 Pandas 数据框中创建变量 的相关文章

  • 根据另一个数据框中找到的范围填充数据框中的列

    我试图根据该记录的索引值是否落在另一个数据框中的两列定义的范围内来填充数据框中的列 df1 看起来像 a 0 4 1 45 2 7 3 5 4 48 5 44 6 22 7 89 8 45 9 44 10 23 df2 是 START ST
  • UnicodeDecodeError:“utf-8”编解码器无法解码位置 14 中的字节 0xb9:起始字节无效

    我正在使用 Django REST 进行文件上传测试 Python3 6 2Django1 11djangorest框架 3 6 4Excel OSX 15 38 170902 操作系统 10 12 6 过去使用普通照片文件可以成功完成此操
  • 测试交互式Python程序

    我想知道python的哪些测试工具支持交互式程序的测试 例如 我有一个由以下人员启动的应用程序 python dummy program py gt gt Hi whats your name Joseph 我想要仪器Joseph所以我可以
  • Pygame 让精灵按照给定的旋转行走

    很久以前我做了一个Scratch脚本 我想用Pygame将其转换为Python 有很多示例显示图像的旋转 但我想知道如何更改精灵的旋转以使其沿给定方向移动 而不更改图像 这是我的暂存代码 这是我的 Pygame 精灵类 class Star
  • 从 Python 将分层 JSON 数据写入 Excel xls?

    我想将一些数据从 python 写入 xlsx 我目前将其存储为 JSON 但它从 Python 中输出什么并不重要 单个文章的 JSON 如下所示 Word Count 50 Key Words Blah blah blah Foo Fr
  • 更改 numpy 数组的结构强制给定值

    如何缩小栅格数据的比例4 X 6大小成2 X 3如果 2 2 像素内的任何元素包含 1 则大小强制选择 1 否则选择 0 import numpy as np data np array 0 0 1 1 0 0 1 0 0 1 0 0 1
  • 在Python中清理属于不同语言的文本

    我有一个文本集合 其中的句子要么完全是英语 印地语或马拉地语 每个句子附加的 id 为 0 1 2 分别代表文本的语言 无论任何语言的文本都可能有 HTML 标签 标点符号等 我可以使用下面的代码清理英语句子 import HTMLPars
  • 从 Spark 数据帧中过滤大量 ID

    我有一个大型数据框 其格式类似于 ID Cat date 12 A 201602 14 B 201601 19 A 201608 12 F 201605 11 G 201603 我需要根据大约 500 万个 Is 的列表来过滤行 最直接的方
  • 如何使用 ipywidgets 创建动态依赖下拉菜单?

    我创建了一个带有两个下拉菜单的表单 我的目标是使一个下拉列表依赖于另一个下拉列表 这张图说明了我的目标和目前的情况 https i stack imgur com o9k5G png 下面的示例代码可以在 Google Colab 或 Ju
  • 如何解决CDK CLI版本不匹配的问题

    我收到以下错误 此 CDK CLI 与您的应用程序使用的 CDK 库不兼容 请将CLI升级到最新版本 云程序集架构版本不匹配 支持的最大架构版本为 8 0 0 但发现为 9 0 0 发出后cdk diff命令 我确实跑了npm instal
  • 如何在python mechanize中设置cookie

    向服务器发送请求后 br open http xxxx br select form nr 0 br form MESSAGE 1 2 3 4 5 br submit 我得到了响应标题 其中包含 set cookie Set Cookie
  • Python 在 64 位 vista 上获取 os.environ["ProgramFiles"] 的错误值

    Vista64 计算机上的 Python 2 4 3 环境中有以下2个变量 ProgramFiles C Program Files ProgramFiles x86 C Program Files x86 但是当我运行以下命令时 impo
  • 多个列表和大小的所有可能排列

    在 python 中使用以下命令很容易计算简单的排列itertools permutations https docs python org 3 library itertools html itertools permutations 你
  • Scapy:如何将新层(802.1q)插入现有数据包?

    我有一个数据包转储 想要将 VLAN 标记 802 1q 标头 注入到数据包中 怎么做 为了找到答案 我查看了Scapy 插入新层和记录问题 https stackoverflow com q 17259592 1381638 这确实很有帮
  • 如何不断地将 STDOUT 发送到我的 python TCP 服务器?

    我有简单的 python echo 服务器 它使用套接字 并向客户端回显随机数 我有另一个程序 每 2 秒将值打印到标准输出 如果它只是一个脚本 我可以像这样重定向 stdout python script py 并像这样在脚本中获取它da
  • Python:绘制甘特图的模块

    有没有一个好的Python绘图模块甘特图 http en wikipedia org wiki Gantt chart 我试过了开罗情节 http linil wordpress com 2008 09 16 cairoplot 11 但它
  • Python 中使用 globals() 的原因?

    Python 中有 globals 函数的原因是什么 它只返回全局变量的字典 这些变量已经是全局的 所以它们可以在任何地方使用 我只是出于好奇而问 试图学习Python def F global x x 1 def G print glob
  • python lxml 使用iterparse编辑并输出xml

    我已经在 lxml 库上摆弄了一段时间了 也许我没有正确理解它 或者我错过了一些东西 但我似乎无法弄清楚在捕获某个 xpath 后如何编辑文件并且然后能够在逐个元素解析时将其写回到 xml 中 假设我们有这个 xml 作为示例
  • 向结构化 numpy 数组添加字段

    将字段添加到结构化 numpy 数组的最简洁方法是什么 是否可以破坏性地完成 或者是否有必要创建一个新数组并复制现有字段 每个字段的内容是否连续存储在内存中 以便可以有效地完成此类复制 如果您使用 numpy 1 3 还有 numpy li
  • 跟踪白色背景中的白球(Python/OpenCV)

    我在 Python 3 中使用 OpenCV 来检测白场上的白 黑球 并给出它的精确 x y 半径 和颜色 我使用函数 cv2 Canny 和 cv2 findContours 来找到它 但问题是 cv2 Canny 并不总是检测到圆的完整

随机推荐

  • 向同一台计算机上的多个客户端发送多播消息

    我正在尝试编写一个服务器 服务 它每秒左右在局域网上广播一条消息 有点像服务发现 该消息需要由以下人员接收 多个客户端程序可能是 在同一台机器上或不同的机器上 机器 但可能不止 每台机器上运行一个程序 同一时间 我正在使用 delphi 7
  • 使用Python提取嵌套括号中的句子

    我有多个 txt目录中的文件 这是一个示例one of my txt files kkkkk select xx xE PUT xx xxxx jdfjhf jhfjj from xxxx x xx L quit 1 xxxxx FROM
  • 有没有办法强制 mongodb 将某些索引存储在 ram 中?

    我有一个具有相对较大索引的集合 但小于可用内存 并查看该集合上 find 的性能以及 htop 给出的系统中的可用内存量 似乎 mongo 没有在内存中存储完整索引 有没有办法强制 mongo 将这个特定索引存储在内存中 查询示例 gt d
  • 如何在 SQL Server 中包含可选的空参数

    我想创建一个存储过程 它在过程的 WHERE 部分有一个可选参数 我的 C 代码可以为此过程传入 null 或有效的产品 ID 这里是 declare ProductID int set ProductID null select from
  • 等待可重入锁中的条件

    以下代码摘自Java文档的Condition http docs oracle com javase 1 5 0 docs api java util concurrent locks Condition html class Bounde
  • 我怎样才能用maven看到jboss控制台

    我用maven2启动了jboss 5 1 0 GA服务器 是否有可能我可以看到控制台中发生了什么 我正在使用 eclipse 插件来运行 Maven 是否可以在 eclipse 或其他地方看到控制台 这就是我所说的控制台的意思 是否可以在某
  • 如果响应为404,如何使用Service Worker缓存跨域资源?

    w3 6 2 跨源资源和 CORS 应用程序倾向于缓存来自 CDN 或其他来源的项目 可以直接使用请求其中许多
  • CGPDF iPhone/iPad 内存问题

    多年来 我一直在努力尝试为 iPhone iPad 制作一个可用的 PDF 阅读器 但它永远不会停止消耗内存 看来所有用CGContextDrawPDFPage绘制的页面都被内部缓存起来 永远不会释放 我不是唯一一个遇到这个问题的人 htt
  • 临时表列列表 (MySQL)

    我需要在 MySQL 中获取某些临时表 MyISAM 的列表列 例如number column name column 我需要知道具有特定名称的列数 事先 我不知道列数是多少 我正在使用动态 sql 和一些变量来创建临时表 我不能使用sho
  • 多重矩阵乘法

    在 numpy 中 我有一个 N 3x3 矩阵的数组 这是我如何存储它们的示例 我正在抽象内容 N 10 matrices np ones N 3 3 我还有一个 3 向量数组 这是一个例子 vectors np ones N 3 我似乎无
  • 失败:Microsoft.AspNetCore.SpaServices[0]

    Asp net core 2 1 Angular 6应用程序 在我的Start cs文件 我们有 app UseSpa spa gt To learn more about options for serving an Angular SP
  • 函数/函子作为模板参数。它们可以存储吗?

    想象我有以下自由函数和函子 void myFreeFunction void cout lt lt Executing free function lt lt endl struct MyFunctor void operator void
  • Java - 调用屏幕键盘

    我正在开发的应用程序将在Windows 7上运行 它将用于通过触摸屏输入一些信息 每当提示用户输入信息时 我需要弹出一个屏幕键盘 我的问题是 我应该从头开始创建一个键盘类还是应该使用 Windows 7 内置屏幕键盘以及如何在 Java 应
  • 具有非标量输出的 Numpy 矢量化函数

    我正在尝试对输出列表的函数进行矢量化 我希望将 numpy 列表中的所有值提供给它 并让它返回一个矩阵 这样每一行都是输入向量中元素的输出 import numpy as np def func x n o for i in range n
  • uiautomator - 当我验证每个列表项中的文本时,无法让 ListView 滚动。当我点击屏幕上的最后一个项目时,它就失败了

    我正在尝试验证 ListView 中每个列表项中的文本 并逐一向下滚动 以便我可以验证每个列表项 但由于某种原因 我无法让它继续滚动列表来验证每个元素 有没有人有幸自动化这种操作 这是我能做到的最接近的 如果这还不够 请告诉我 UiScro
  • Docker 中使用 capybara 和 headless selenium 浏览器进行 Rails 系统测试

    TL DR 关于如何正确配置 capybara 以便能够使用默认的 Rails minitest 系统测试在 docker 容器中驱动远程 selenium 浏览器 您有什么想法吗 我在 dockerized 环境中运行 Rails 现在我
  • 如何通过浏览弹出窗口设置路径?

    我有下面的脚本 其中有两个路径 一个是目标路径 只有一个 另一个是源路径 变量 关于下面的脚本函数 我将每月运行一次 它将转到源路径 10 路径 并复制最新文件 然后复制并重命名到目标路径 所有文件通用 注意 从响应源复制的文件应按照脚本重
  • 从 javascript 客户端连接到 asp.net core signalR 服务器

    我有 asp net core web api 服务器正在传输信号器 它适用于 asp net 客户端 我试图与下面显示的代码建立连接 但它只连接到非核心服务器 它不适用于核心服务器 the hub class in the server
  • isset() 和 PHP 全局变量

    关于全局变量初始化 function hello testing global conditional random if isset conditional random echo foo is inside 全局变量 condition
  • 根据数据框中的信息在 Pandas 数据框中创建变量

    我有一个按以下方式组织的数据框 var1 var2 var3 var4 0 A 23 B 7 1 B 13 C 4 2 C 12 A 11 3 A 5 C 15 我现在想要创建一个新变量 列 var5 如果 var1 A 它采用 var2