如何检查 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 数据框中的字符串值序列并输出后续内容 的相关文章

随机推荐

  • 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