如何检查 pandas 数据框中的字符串值序列并输出后续内容

2024-01-04

我正在尝试检查数据框中 B-B-B 的顺序。

d = {'A': ['A','B','C','D','B','B','B','A','A','E','F','B','B','B','F','A','A']}
testdf = pd.DataFrame(data=d)

array = []
seq = pd.Series(['B', 'B', 'B'])

for i in testdf.index:
    
    if testdf.A[i:len(seq)] == seq:
        
        array.append(testdf.A[i:len(seq)+1])

我收到错误:

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

我怎样才能让它工作?我不明白这段代码有什么“不明确”之处

我想要的输出是:

A, F

  1. The ambiguous比较来自这样一个事实:当你测试 2Series为了平等(它们应该具有相同的大小),进行一对比较并获得Series仅与True/False值,然后您应该决定是否想要全真、全假、至少一个真……使用.any(), .all(), ...

    s1 = pd.Series(['B', 'B', 'B'])
    s2 = pd.Series(['A', 'B', 'B'])
    
    print(s1 == s2)
    0    False
    1     True
    2     True
    dtype: bool
    
    print((s1 == s2).all())
    False
    
  2. 要访问子序列,最好使用.iloc

  3. 你需要使用[i:i + len(seq)]并不是[i:len(seq)]因为这是一个[from:to]符号

  4. 你需要使用Series.reset_index(drop=True)因为要比较系列,它们必须具有相同的索引,因此seq如果总是索引0,1,2你需要同样的子序列来计算(因为testdf.A.iloc[1:3]已编入索引1,2,3]

  5. 在检查系列之前验证长度,以避免在子序列较小时出现异常

你以:

values = {'A': ['A', 'B', 'C', 'D', 'B', 'B', 'B', 'A', 'A', 'E', 'F', 'B', 'B', 'B', 'F', 'A', 'A']}
testdf = pd.DataFrame(values)
array = []
seq = pd.Series(['B', 'B', 'B'])
for i in testdf.index:
    test_seq = testdf.A.iloc[i:i + len(seq)].reset_index(drop=True)
    if len(test_seq) == len(seq) and (test_seq == seq).all():
        array.append(testdf['A'].iloc[i + len(seq)])
print(array)  # ['A', 'F']
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何检查 pandas 数据框中的字符串值序列并输出后续内容 的相关文章

  • 如何在android上的python kivy中关闭应用程序后使服务继续工作

    我希望我的服务在关闭应用程序后继续工作 但我做不到 我听说我应该使用startForeground 但如何在Python中做到这一点呢 应用程序代码 from kivy app import App from kivy uix floatl
  • DreamPie 不适用于 Python 3.2

    我最喜欢的 Python shell 是DreamPie http dreampie sourceforge net 我想将它与 Python 3 2 一起使用 我使用了 添加解释器 DreamPie 应用程序并添加了 Python 3 2
  • 导入错误:没有名为 _ssl 的模块

    带 Python 2 7 的 Ubuntu Maverick 我不知道如何解决以下导入错误 gt gt gt import ssl Traceback most recent call last File
  • pandas 替换多个值

    以下是示例数据框 gt gt gt df pd DataFrame a 1 1 1 2 2 b 11 22 33 44 55 gt gt gt df a b 0 1 11 1 1 22 2 1 33 3 2 44 4 3 55 现在我想根据
  • 打破嵌套循环[重复]

    这个问题在这里已经有答案了 有没有比抛出异常更简单的方法来打破嵌套循环 在Perl https en wikipedia org wiki Perl 您可以为每个循环指定标签 并且至少继续一个外循环 for x in range 10 fo
  • Spark的distinct()函数是否仅对每个分区中的不同元组进行洗牌

    据我了解 distinct 哈希分区 RDD 来识别唯一键 但它是否针对仅移动每个分区的不同元组进行了优化 想象一个具有以下分区的 RDD 1 2 2 1 4 2 2 1 3 3 5 4 5 5 5 在此 RDD 上的不同键上 所有重复键
  • Python tcl 未正确安装

    我刚刚为 python 安装了graphics py 但是当我尝试运行以下代码时 from graphics import def main win GraphWin My Circle 100 100 c Circle Point 50
  • 安装后 Anaconda 提示损坏

    我刚刚安装张量流GPU创建单独的后环境按照以下指示here https github com antoniosehk keras tensorflow windows installation 但是 安装后当我关闭提示窗口并打开新航站楼弹出
  • python 集合可以包含的值的数量是否有限制?

    我正在尝试使用 python 设置作为 mysql 表中 ids 的过滤器 python集存储了所有要过滤的id 现在大约有30000个 这个数字会随着时间的推移慢慢增长 我担心python集的最大容量 它可以包含的元素数量有限制吗 您最大
  • Python:字符串不会转换为浮点数[重复]

    这个问题在这里已经有答案了 我几个小时前写了这个程序 while True print What would you like me to double line raw input gt if line done break else f
  • 当玩家触摸屏幕一侧时,如何让 pygame 发出警告?

    我使用 pygame 创建了一个游戏 当玩家触摸屏幕一侧时 我想让 pygame 给出类似 你不能触摸屏幕两侧 的错误 我尝试在互联网上搜索 但没有找到任何好的结果 我想过在屏幕外添加一个方块 当玩家触摸该方块时 它会发出警告 但这花了很长
  • Geopandas 设置几何图形:MultiPolygon“等于 len 键和值”的 ValueError

    我有 2 个带有几何列的地理数据框 我将一些几何图形从 1 个复制到另一个 这对于多边形效果很好 但对于任何 有效 多多边形都会返回 ValueError 请指教如何解决这个问题 我不知道是否 如何 为什么应该更改 MultiPolygon
  • 使用 OpenPyXL 迭代工作表和单元格,并使用包含的字符串更新单元格[重复]

    这个问题在这里已经有答案了 我想使用 OpenPyXL 来搜索工作簿 但我遇到了一些问题 希望有人可以帮助解决 以下是一些障碍 待办事项 我的工作表和单元格数量未知 我想搜索工作簿并将工作表名称放入数组中 我想循环遍历每个数组项并搜索包含特
  • 如何将 PIL 图像转换为 NumPy 数组?

    如何转换 PILImage来回转换为 NumPy 数组 这样我就可以比 PIL 进行更快的像素级转换PixelAccess允许 我可以通过以下方式将其转换为 NumPy 数组 pic Image open foo jpg pix numpy
  • 检查所有值是否作为字典中的键存在

    我有一个值列表和一本字典 我想确保列表中的每个值都作为字典中的键存在 目前我正在使用两组来确定字典中是否存在任何值 unmapped set foo set bar keys 有没有更Pythonic的方法来测试这个 感觉有点像黑客 您的方
  • 如何从没有结尾的管道中读取 python 中的 stdin

    当管道来自 打开 时 不知道正确的名称 我无法从 python 中的标准输入或管道读取数据 文件 我有作为例子管道测试 py import sys import time k 0 try for line in sys stdin k k
  • glpk.LPX 向后兼容性?

    较新版本的glpk没有LPXapi 旧包需要它 我如何使用旧包 例如COBRA http opencobra sourceforge net openCOBRA Welcome html 与较新版本的glpk 注意COBRA适用于 MATL
  • 使用基于正则表达式的部分匹配来选择 Pandas 数据帧的子数据帧

    我有一个 Pandas 数据框 它有两列 一列 进程参数 列 包含字符串 另一列 值 列 包含相应的浮点值 我需要过滤出部分匹配列 过程参数 中的一组键的子数据帧 并提取与这些键匹配的数据帧的两列 df pd DataFrame Proce
  • 在 Python 类中动态定义实例字段

    我是 Python 新手 主要从事 Java 编程 我目前正在思考Python中的类是如何实例化的 我明白那个 init 就像Java中的构造函数 然而 有时 python 类没有 init 方法 在这种情况下我假设有一个默认构造函数 就像
  • Python:元类属性有时会覆盖类属性?

    下面代码的结果让我感到困惑 class MyClass type property def a self return 1 class MyObject object metaclass MyClass a 2 print MyObject

随机推荐

  • PHP邮件:所有电子邮件都会在SPAM文件夹中收到[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在制作一个简单的 PHP 邮件发
  • 如何在 Silverlight 5 中使用 VisualStateManager 重用 Storyboard

    这个问题以前曾被问过 但在大多数情况下不超过 2 年前 并且通常特定于 WPF 答案可能还是一样 但就这样了 我正在尝试构建一个三角形 箭头 按钮 当鼠标悬停在其上方时 该按钮会改变颜色并增大尺寸 我已经用一个按钮实现了这一点 但现在我需要
  • 如何在android视频视图中播放某个URL位置的视频?

    我试图在视频视图中播放 youtube 视频 但始终出现错误 无法播放此视频 在设备上以及模拟器上 请帮我解决这个问题 提前致谢 import android app Activity import android net Uri impo
  • body2 已弃用,不应使用。这是 2014 年版材料设计中使用的术语。 - 颤振中的警告消息

    如果您从版本更新flutter SDKv1 12 13之后的任何版本v1 13 8 您将收到几条与 textTheme 使用相关的警告消息 例如 下面给出其中之一 信息 body2 已弃用 不应使用 这是 2014 年版材料设计中使用的术语
  • 如何将哈希转换为 JSON,且转换后的字符串不包含反斜杠

    我正在使用将哈希值转换为 JSONto json 但转换后的字符串充满了反斜杠 如果我使用puts 它显示正确的字符串 但如果我传入一个HTTP NET request body 字符串中充满了反斜杠 data a gt b c gt d
  • 从 CSV 数据流 python 创建字典

    我正在尝试从 python 中的 csv 数据创建一个字典 我不想使用传统的 split 然后使用将行重命名为我想要的标题 因为我将收到具有不同格式的不同 csv 文件信息量很大 而且我将无法使用该方法一致地定位我想要的行 标头名称将是一致
  • Drupal 从 Twitter 导入推文作为节点

    我希望能够将我的推文作为 Nndes 从 twitter 导入到 Drupal 中 我希望能够链接 names and tags返回正确的页面 我也不希望 myTweeterName 出现在推文的开头 你会怎样做呢 twitter 模块不创
  • 使用 javascript 计算日期与开始日期和天数

    我正在尝试根据开始日期和天数计算日期 因此基本上将天数添加到开始日期并获取结束日期 问题是我得到了一些奇怪的结果 但只有一次约会 我已经花了几天时间试图弄清楚这个结果 其功能是 CallculateDateFromDays function
  • 如何使表格水平滚动并固定第一列和最后一列

    我下面有这张表 我希望它可以滚动 水平方向 但我想要表格的第一列和最后一列 是固定的 而中间的列是可滚动的 关于如何做的任何想法 来完成这个 我想在没有任何插件的情况下执行此操作 JavaScript 我的 css 位于 html 之后 谢
  • 适用于 iOS (xcode) 的 LZMA SDK 解压缩使用过多 RAM

    我正在尝试在 iPhone iPad 应用程序中使用 LZMA SDK 我的起点是 Mo Dejong 提供的 iPhone 的 LZMA 示例项目 可在此处获取 https github com jk lzmaSDK https gith
  • Clojure 的“core.logic”中的目标排序

    以下 Clojure 代码 https gist github com 4525736 uses core logic以两种不同的顺序解决具有相同目标的相同逻辑问题 这种排序选择会导致一个很快完成 另一个则挂起 use clojure co
  • 格式化 Carbon 日期实例

    我有一个返回以下日期时间的数组 item created at gt 2015 10 28 19 18 44 如何将日期更改为M d Y在 Laravel 中使用 Carbon 格式化 目前它返回错误 suborder payment da
  • 使用 Logback SizeAndTimeBasedFNATP 时如何限制每天的文件数量

    使用Logback SizeAndTimeBasedFNATP触发策略时 如何限制每天的文件数量 例如 在任何一天 我都不希望拥有超过 100MB 的日志 鉴于每个日志 在下面的示例中 为 20MB 我希望能够将每天的最大限制设置为 5 个
  • 如何在下拉列表中选择完整的日历月份和年份

    我有一个完整的日历 我需要在下拉列表中显示它的月份和年份 我知道这个问题已经被问过 但仍然没有得到解答 我是完整日历的新手 据我所知 它现在已更新 希望有一些最简单的方法来实现 而不是给它 gotodate 选项 我已经为日历创建了代码笔
  • 在 WebForms 应用程序中验证AntiForgeryToken

    我已经阅读了一些有关使用的内容ValidateAntiForgeryToken防止 XSRF CSRF 攻击 然而我所看到的似乎只与 MVC 有关 这些是我看过的文章 ValidateAntiForgeryToken 目的 解释和示例 ht
  • 禁用整个页面的 UpdateProgress

    我已经检查过这个解决方案 有没有办法禁用某些异步回发的 UpdateProgress https stackoverflow com questions 6299072 is there a way to disable updatepro
  • Jenkins 工作流程:如何获取或设置步骤 ID

    我们想引用 Jenkins 工作流程并行任务中的一个步骤 但似乎对于多个并行任务中的步骤创建的步骤 ID 是不确定的 对于输入步骤 可以手动指定步骤 ID 是否可以为 shell 步骤指定步骤 id 或查询步骤 id 目的是我们希望在并行任
  • 使用 jquery 和 canvas 从 html 元素 id 到另一个 html 元素绘制线条

    html和jquery是否可以只通过引用元素id来画一条线 我在文本中有一个重要的单词 并且想在该单词和描述它的图像之间画一条线 我已经看到可以使用画布在元素之间进行绘制 但它们的样式位置设置为绝对 由于我的元素是文本中的单词 因此我无法将
  • Windows 运行时组件中无法继承?

    设想 我的 Windows 运行时组件项目中有 3 个类 A B C class A public sealed class B A public sealed class C A 编译上面的代码 我得到以下内容error 可访问性不一致
  • 如何检查 pandas 数据框中的字符串值序列并输出后续内容

    我正在尝试检查数据框中 B B B 的顺序 d A A B C D B B B A A E F B B B F A A testdf pd DataFrame data d array seq pd Series B B B for i i