计算数据帧中连续的数并获取发生这种情况的索引

2023-12-13

我有一个pandas.DataFrame具有整数列名称,其中包含零和一。输入示例:

    12  13  14  15
1   0   0   1   0
2   0   0   1   1
3   1   0   0   1
4   1   1   0   1
5   1   1   1   0
6   0   0   1   0
7   0   0   1   1
8   1   1   0   1
9   0   0   1   1
10  0   0   1   1
11  1   1   0   1
12  1   1   1   1
13  1   1   1   1
14  1   0   1   1
15  0   0   1   1

我需要计算长度/总和 >=2 的所有连续的,迭代列并返回连续数组出现的索引(开始、结束)。

首选输出是 3D DataFrame,其中子列“count”和“indices”指的是输入中的整数列名称。

示例输出如下所示:

12              13              14              15
count   indices count   indices count   indices count   indices
    3     (3,5)     2     (4,5)     2     (1,2)     3     (2,4)
    4   (11,14)     3   (11,13)     3     (5,7)     9    (7,15)
                                    2    (9,10) 
                                    4   (12,15)     

我想它应该解决itertools.groupby,但仍然不知道如何将其应用于这样的问题,其中两者groupby正在提取结果及其指数。


以下是计算所需游程长度的一种方法:

Code:

def min_run_length(series):
    terminal = pd.Series([0])
    diffs = pd.concat([terminal, series, terminal]).diff()
    starts = np.where(diffs == 1)
    ends = np.where(diffs == -1)
    return [(e-s, (s, e-1)) for s, e in zip(starts[0], ends[0])
            if e - s >= 2]

测试代码:

df = pd.read_fwf(StringIO(u"""
    12  13  14  15
    0   0   1   0
    0   0   1   1
    1   0   0   1
    1   1   0   1
    1   1   1   0
    0   0   1   0
    0   0   1   1
    1   1   0   1
    0   0   1   1
    0   0   1   1
    1   1   0   1
    1   1   1   1
    1   1   1   1
    1   0   1   1
    0   0   1   1"""), header=1)
print(df.dtypes)

indices = {cname: min_run_length(df[cname]) for cname in df.columns}
print(indices)

Results:

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

计算数据帧中连续的数并获取发生这种情况的索引 的相关文章

  • 如何使用pycaffe重构caffe网络

    我想要的是 加载网络后 我将分解一些特定的图层并保存新的网络 例如 原网 数据 gt conv1 gt conv2 gt fc1 gt fc2 gt softmax New net 数据 gt conv1 1 gt conv1 2 gt c
  • 如何更改充当按钮的范围的文本

    我正在为自定义 Web 应用程序编写自动化测试 我遇到了无法更改跨度文本的问题 我尝试过使用 driver execute script 但没有运气 如果我更好地了解 javascript 这确实会有帮助 据我所知 您无法单击跨度 并且列表
  • 如何将条目中的部分文本加粗并更改其背景颜色?

    我正在创建一个基于 Tkinter 的 GUI 它有一个 Entry 小部件 我想将其文本的一部分加粗并更改其背景颜色 但我不知道我该怎么做 如果我使用文本小部件 我可以只使用标签 但看起来它们不能与条目小部件一起使用 此代码使用文本小部件
  • NLTK、搭配问题:需要解包的值太多(预期为 2)

    我尝试使用 NLTK 检索搭配 但出现错误 我使用内置的古腾堡语料库 I wrote alice nltk corpus gutenberg fileids 7 al nltk corpus gutenberg words alice al
  • Python 中 genfromtxt() 的可变列数?

    我有一个 txt具有不同长度的行的文件 每一行都是代表一条轨迹的一系列点 由于每条轨迹都有自己的长度 因此各行的长度都不同 也就是说 列数从一行到另一行不同 据我所知 genfromtxt Python 中的模块要求列数相同 gt gt g
  • Sorted(key=lambda: ...) 背后的语法[重复]

    这个问题在这里已经有答案了 我不太明白背后的语法sorted 争论 key lambda variable variable 0 Isn t lambda随意的 为什么是variable在看起来像的内容中陈述了两次dict 我认为这里的所有
  • 在 python-docx 中搜索和替换

    我有一个包含以下字符串的文档 模板 你好 我的名字是鲍勃 鲍勃是一个很好的名字 我想使用 python docx 打开此文档并使用 查找和替换 方法 如果存在 来更改每个字符串 Bob gt Mark 最后 我想生成一个新文档 其中包含字符
  • 如何在 Windows 上使用 Python 3.6 来安装 Python 2.7

    我想问一下如何使用pip install对于 Python 2 7 当我之前安装并使用 Python 3 6 时 我现在必须使用 Windows 上的 Python 版本 pip install 继续安装 Python 3 6 我需要使用以
  • 在wxpython中使用wx.TextCtrl并在按钮单击后显示数据的简单示例 - wx新手

    我正在学习 python 并尝试使用 wxpython 进行 UI 开发 也没有 UI exp 我已经能够创建一个带有面板 按钮和文本输入框的框架 我希望能够在文本框中输入文本 并让程序在单击按钮后对输入框中的文本执行操作 我可以获得一些关
  • 使用循环将对象添加到列表(python)

    我正在尝试使用 while 循环将对象添加到列表中 基本上这就是我想做的 class x pass choice raw input pick what you want to do while choice 0 if choice 1 E
  • Python int 太大,无法放入 SQLite

    我收到错误 OverflowError Python int 太大 无法转换为 SQLite INTEGER 来自以下代码块 该文件约25GB 因此必须分部分读取 length 6128765 Works on partitions of
  • 如何逐像素绘制正方形(Python,PIL)

    在空白画布上 我想使用 Pillow 逐像素绘制一个正方形 我尝试使用 img putpixel 30 60 155 155 55 绘制一个像素 但它没有执行任何操作 from PIL import Image def newImg img
  • Python 矩阵每一行的总和

    lista 1 2 3 4 5 6 7 8 9 print lista def filas lista res for elemento in lista x sum lista elemento res append x print re
  • 使用 Doc2vec 后如何解释 Clusters 结果?

    我正在使用 doc2vec 将关注者的前 100 条推文转换为矢量表示形式 例如 v1 v100 之后 我使用向量表示来进行 K 均值聚类 model Doc2Vec documents t size 100 alpha 035 windo
  • asyncio - 多次等待协程(周期性任务)

    我正在尝试为异步事件循环创建定期任务 如下所示 但是我收到 RuntimeError 无法重用已等待的协程 异常 显然 asyncio 不允许等待相同的可等待函数 如中讨论的这个错误线程 https bugs python org issu
  • 将 Scikit-Learn OneHotEncoder 与 Pandas DataFrame 结合使用

    我正在尝试使用 Scikit Learn 的 OneHotEncoder 将 Pandas DataFrame 中包含字符串的列替换为 one hot 编码的等效项 我的下面的代码不起作用 from sklearn preprocessin
  • 使用“pythonw”(而不是“python”)运行应用程序时找不到模块

    我尝试了这个最小的例子 from flask import Flask app Flask name app route def hello world return Hello World if name main app run deb
  • 从时间序列生成日期特征

    我有一个数据框 其中包含如下列 Date temp data holiday day 01 01 2000 10000 0 1 02 01 2000 0 1 2 03 01 2000 2000 0 3 30 01 2000 200 0 30
  • 如何使用 Django (Python) 登录表单?

    我在 Django 中构建了一个登录表单 现在我遇到了路由问题 当我选择登录按钮时 表单不会发送正确的遮阳篷 我认为前端的表单无法从 查看 py 文件 所以它不会发送任何 awnser 并且登录过程无法工作 该表单是一个简单的静态 html
  • 使用 numpy 加速 for 循环

    下一个 for 循环如何使用 numpy 获得加速 我想这里可以使用一些奇特的索引技巧 但我不知道是哪一个 这里可以使用 einsum 吗 a 0 for i in range len b a numpy mean C d e f b i

随机推荐

  • 如何使用实体框架 4.x 动态选择表?

    假设我有一个名为MyDatabase有两张桌子 MyTable1 and MyTable2 使用 Entity Framework 4 x 和 NET 4 的 Code First 方法 我生成了一个名为的上下文MyDatabaseCont
  • CSS中使用渐变效果反射文本

    我需要用 CSS 反射文本并为其添加渐变 这是一个例子我想要的 但我不想要具有 alpha 透明度的淡出 png 图像因为身体有背景 https jsfiddle net 9318Ltkp slogan font size 30px lin
  • 仅存档时出现 ARC 语义问题“多个名为‘setRotation’的方法”

    我在 cocos2dv3 中的项目正在抛出ARC语义问题发现多个名为 setRotation 的方法 其结果 参数类型或属性不匹配 归档时 发布模式 它在部署到模拟器 设备 调试模式 时运行良好 在发布模式下 编译器会混淆旋转的实现UIRo
  • 如何使安全令牌在被动 STS 设置中自动过期?

    我为我正在开发的新应用程序设置了被动 STS 我注意到 当用户的会话过期时 该用户仍然经过身份验证 我本以为当会话过期时 用户将不再被验证 我的老板与我讨论了这个问题 因为我目前负责设置身份验证 他说 如果我们能让用户的登录在一段时间内不活
  • 崩溃加载可穿戴活动

    将 AppCompatActivity 迁移到 WearableActivity 时 我收到崩溃消息 并显示以下消息 引起原因 java lang IllegalStateException 找不到可穿戴设备 共享库类 请添加uses li
  • 对象 # 的属性“submit”不是函数

    谁能向我解释这个错误意味着什么 如果您能提供任何帮助 我将非常感激
  • log4j:ERROR setFile(null,false) 调用失败

    我面临一些奇怪的错误 如下所示 log4j ERROR setFile null false call failed java io FileNotFoundException debug log Access is denied src
  • TCL:execegrep“子进程异常退出”

    我的egrep命令有问题 当我在 tcsh 中执行命令时 它工作正常 但是当我从 tcl 脚本或在 tclsh 中执行它时 我得到 子进程异常退出 grep 使用其退出状态来指示存在 不存在匹配项 man page 如果没有匹配 则退出状态
  • 为什么使用 boost::copy_exception 时会丢失类型信息?

    当我使用boost copy exception将异常复制到exception ptr 我丢失了类型信息 看一下下面的代码 try throw std runtime error something catch exception e pt
  • 在 .NET Core 中的 MVC 之外使用 Razor

    我想在我用 NET Core 编写的 NET 控制台应用程序中使用 Razor 作为模板引擎 我遇到的独立 Razor 引擎 RazorEngine RazorTemplates 都需要完整的 NET 我正在寻找适用于 NET Core 的
  • Python 3 中“python -m SimpleHTTPServer”的等价物是什么

    Python 3 相当于什么python m SimpleHTTPServer From the docs The SimpleHTTPServer模块已合并到http server在Python 3 0中 将源文件转换为 3 0 时 2t
  • 是否可以在 JavaFX 中制作对角列标题?

    我的 JavaFX TableView 看起来像这样 如果顶部的标签是diagonal以节省空间 我想象它是这样的 目标是使该列与内容紧密贴合 尽管标题标签很长 能做到吗 None
  • Haskell 中的基本 I/O 性能

    另一个微基准测试 为什么是这个 循环 用ghc O2 fllvm 7 4 1 Linux 64位3 2内核 重定向到 dev null mapM print 1 100000000 比普通的简单 for 循环慢大约 5 倍C with wr
  • 为什么 Python 中的整数需要三倍的内存?

    在 64 位系统上 Python 中的整数占用 24 个字节 这是例如所需内存的 3 倍 C 表示 64 位整数 现在 我知道这是因为 Python 整数是对象 但是额外的内存有什么用呢 我有我的猜测 但很高兴能确定 请记住 Pythoni
  • GroupBy 从 IEnumerable 对象列表中删除重复项

    我有一个重复名称列表 我想获取没有重复名称的列表 CSVCategories from line in File ReadAllLines path Skip 1 let columns line Split select new Cate
  • LiveData 阻止在开始观察时接收最后一个值

    是否可以预防LiveData开始观察时收到最后一个值 我正在考虑使用LiveData作为事件 例如 显示消息 导航事件或对话框触发器等事件 类似于EventBus 与之间的通信相关的问题ViewModel和片段 谷歌给了我们LiveData
  • 涉及 OR 条件的高级索引 (pgsql)

    我开始更好地掌握 PostgreSQL 索引 但我遇到了 OR 条件的问题 我不知道如何优化索引以实现更快的查询 我有 6 个条件 当单独运行时 它们的成本似乎很小 以下是修剪查询的示例 包括查询计划计算时间 注意 为了降低复杂性 我没有输
  • 可以从 STL 容器继承实现而不是委托吗?

    我有一个类 它适应 std vector 来对特定于域的对象的容器进行建模 我想向用户公开大部分 std vector API 以便他们可以在容器上使用熟悉的方法 size clear at 等 和标准算法 这似乎是我的设计中反复出现的模式
  • git 更改提交者姓名和特定提交者电子邮件的所有历史记录

    我如何无法更改我所有提交历史记录的名称和电子邮件 但特定提交者的名称和电子邮件 类似于 foreach allcommits if committer name Hugo Casa 改变 提交者名称 提交者 电子邮件 作者姓名 作者邮箱 这
  • 计算数据帧中连续的数并获取发生这种情况的索引

    我有一个pandas DataFrame具有整数列名称 其中包含零和一 输入示例 12 13 14 15 1 0 0 1 0 2 0 0 1 1 3 1 0 0 1 4 1 1 0 1 5 1 1 1 0 6 0 0 1 0 7 0 0 1