基于 pandas 数据框 python 同一列中的先前值的条件替换

2023-12-09

感觉我几乎到处都看过了,我知道这可能是非常简单的事情。我正在使用 pandas 数据框,并希望根据同一列中的数据填充/替换其中一列中的数据。我通常更喜欢使用 Excel,而且 Excel 非常简单。如果我们有:

df = pd.DataFrame([0, -1, -1, -1, 0 , 0, 0, 1, 0])
df.columns = ['A']
df['B'] = df['A']

在Excel中,我想做的是“=IF(AND(A2=0, B1=-1), -1, A2),这样我就可以向下拖动“B”列,这将适用。本质上,根据 B 列的先前数据点和 A 列的当前值,我需要更新 B 列的当前值。

我试过了:

df['B'] = np.where((df['A'] == 0), (df['B'].shift(1) == -1),
                   df['B'].replace(to_value = 0, method = 'ffill'), df['A'])

以及许多其他版本,以及 iterrows 的变体和其他令人难以置信的极端解决方法,但没有任何效果。

非常感谢任何建议。

EDIT:

结果将是:

df['B'] = [0, -1, -1, -1, -1 , -1, -1, 1, 0]

这是一种暴力方法。可能有更优雅的东西,但是您可以像这样显式循环行:

df = pd.DataFrame([0, -1, -1, -1, 0 , 0, 0, 1, 0])
df.columns = ['A']
df['B'] = df['A']

# loop here
for i in range(1,len(df)):
     if df.A[i] == 0 and df.B[i-1] == -1:
             df.B[i] = -1
     else:
             df.B[i] = df.A[i]

这将为您提供所需的结果:

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

基于 pandas 数据框 python 同一列中的先前值的条件替换 的相关文章

随机推荐

  • 为什么我们在c++中需要接口或纯虚函数

    为什么我们在c 中需要接口 纯虚函数或抽象类 我们可以不使用抽象类 而使用一个基类并在其中定义虚函数 并在派生类中重写该虚函数吗 上述方法有什么优点和缺点 除了我们可以创建基类的对象 纯虚函数适用于没有合理的方法在基类中实现该函数的情况 例
  • 如何重新排序整数的字节? [复制]

    这个问题在这里已经有答案了 我的任务是使用 C 将数据文件从大端转换为小端 反之亦然 我已经在网上查找了大约 3 个小时的其他示例并阅读了我的教科书 但是我对如何开始这个问题非常困惑功能 到目前为止 我的事件顺序是正确的 1 到 4 但在我
  • 适用于所有 iOS (iPhone/iPad/Apple Watch) 设备的 App Store Connect 屏幕截图尺寸

    我正在尝试向 App Store 提交新的应用程序 但现在 Apple 要求提供 4 7 英寸和 5 5 英寸 iPhone 的屏幕截图 有人有这些截图规格 尺寸 吗 我尝试过 640 x 1136 纵向 640 x 1096 纵向 113
  • 如何解决问题:int无法解引用

    这里我有一些值 其中两个是整数 并且我无法对它们调用方法 因为它们不是引用 我该如何解决这个问题 String srcAddr dstAddr protocol int srcPort dstPort public int hashCode
  • 如何在 Django Rest Framework 中显示 ManyToMany 字段的值而不是 Id?

    Model class Genre models Model name models CharField max length 100 def str self return self name class Song models Mode
  • 带有悬挂缩进的内联描述列表

    我想创建一个描述列表 其中每个术语和描述对都出现在一行中 但这些 行 带有悬挂缩进 以防它们换行 这是我想要的视觉效果 但使用p元素代替 p margin 0 0 0 2em text indent 2em p b H b Himenaeo
  • 为什么 Java 8 中的函数式接口有一个抽象方法?

    我们知道 在Java 8中 引入了函数式接口的概念 函数式接口有一个abstract方法和几个默认或静态方法是可能的 但为什么功能接口应该只有一个抽象方法呢 如果接口有多个抽象方法 为什么这不是函数式接口 函数式接口也称为单一抽象方法接口引
  • 具有多个配置文件模型的 Django-allauth

    我有一个 django 项目 其中有多个配置文件模型 每个模型都有一个指向 User 模型的外键 它用django allauth进行注册 目前 当使用社交帐户注册时 用户注册 创建用户和社交帐户 然后将用户重定向到要填写的表单 具体取决于
  • Python:numpy数组列表,不能执行index()吗?

    center 是 numpy 数组的列表 Shortest dist 1 是一个 numpy 数组 但是 当我这样做时 centers index shortest dist 1 它告诉我 ValueError The truth valu
  • TCP 多播和多线程

    我需要提出能够可靠地多播到其他客户端的客户端 这意味着我将使用 TCP 在多播组内的客户端之间进行可靠连接 这不是达到了 n 2 个连接吗 这对我来说似乎有点愚蠢 是否 不应该有一种方法可以更轻松 更可靠地进行多播 编辑 UNIX C 编辑
  • 页面未正确重定向 Ruby on Rails

    由于某种原因 我在单击页面的受保护部分时收到错误 Firefox 页面未正确重定向 这是我在我的中使用的方法ApplicationController protected def authorize unless User find by
  • 如何让 RabbitMQ 具有可扩展性?

    我尝试测试RabbitMQ 但发现rabbitmq存在一些问题 如果我创建了一个包含 3 个节点的集群 我无法发布 交付超过 6000 s 另一方面 如果我使用一个节点 我可以发布 交付直到 25000 s 这意味着 添加的节点越多 性能就
  • cmap、vmin、vmax 内部做什么(matplotlib)?

    假设我使用 matplotlib 的 imshow 显示图像 如下所示 plt imshow IMG cmap hot vmin 0 20 vmax 0 90 where IMG是一个二维灰度图像 数据类型为 float64 数据值在 0
  • Android - 如何绘制2个方向的渐变?

    我开始使用渐变 我发现绘制 1 向渐变非常容易 例如从上到下 从左到右 或对角线 但如何绘制 2 向渐变 我的意思是这样的 大蓝色矩形是 2 向渐变 右上角是蓝色 左侧转变为白色 底部转变为黑色 这个要怎么画呢 答案是 你必须组合2个不同的
  • WasapiLoopbackCapture 内部音频识别在没有音频时给出乱码和文本

    我终于构建了一个程序来使用 NAudio 监听内部音频环回 并输出识别的文本 问题是它会听 并且总是说 例如 Recognized text had Recognized text had Recognized text had Recog
  • iOS应用程序更改仅适用于iPhone

    我们有一个应用程序作为通用应用程序提交 支持所有设备 iPad 和 iPhone 但我们不再希望它在商店中显示为 iPad 应用程序 我们希望它只是 iPhone 专用应用程序 这个应用程序是用Appcelerator构建的 所以我已经更改
  • reactjs.net - 渲染时是否需要react-text标签?

    我一直在关注这个教程http reactjs net getting started tutorial html一切都很好 但是在最终的输出源中 我得到以下注释标签 为什么文本包裹在react text标签 它们是必需的标签吗 为什么它们出
  • 何时更喜欢 JSON 而不是 XML?

    我的要求只是在跨页上显示从数据库检索到的一组值 我正在使用jquery 当满足以下任一条件时 优先选择 XML 而不是 JSON 您需要消息验证 您正在使用 XSLT 您的消息包含大量标记文本 您需要与不支持 JSON 的环境进行互操作 当
  • 尝试引用活动工作簿中的另一个工作表

    我试图在单击命令按钮时使另一个工作表处于活动状态 但我仍保留在同一个活动工作簿中 Sub Submit Warranty Set warranty data worksheet as active page Sheets Sheet2 Ac
  • 基于 pandas 数据框 python 同一列中的先前值的条件替换

    感觉我几乎到处都看过了 我知道这可能是非常简单的事情 我正在使用 pandas 数据框 并希望根据同一列中的数据填充 替换其中一列中的数据 我通常更喜欢使用 Excel 而且 Excel 非常简单 如果我们有 df pd DataFrame