使用 Pandas 进行数据分组

2023-12-06

我有一个数据框

Name    Subset    Type    System
A00     IU00-A    OP      A
A00     IT00      PP      A
B01     IT-01A    PP      B
B01     IU        OP      B
B03     IM-09-B   LP      A
B03     IM03A     OP      A
B03     IT-09     OP      A
D09     IT        OP      A
D09     IM        LP      B
D09     IM        OP      A

上面的数据框,我需要根据使用提取的分组名称和子集字符串来转换它extractall(r'[^a-zA-Z]*([a-zA-Z]+)[^,]*').groupby(level=0).agg(', '.join)。而系统、子集则应按照类型依次提及。

输出示例:

Subset Cluster    Type Cluster    Name          System        Subsets
IU,IT             OP,PP           A00,B01       A,A,B,B       IU00-A,IT00
IM,IM,IT          LP, OP, OP      B03, D09      A,A,A,A,B,A   IM-09-B,IM03A,IT-09,IT,IM,IM   

Double groupby我们首先按“名称”分组,然后再次按“子集集群”和“类型集群”进行分组:

out = df.assign(**{'Subset Cluster': df['Subset'].str.extractall(r'[^a-zA-Z]*([a-zA-Z]+)[^,]*')\
                                                 .groupby(level=0)[0].agg(', '.join)})\
        .sort_values(by=df.columns.tolist())\
        .groupby('Name', as_index=False).agg(', '.join).rename(columns={'Type':'Type Cluster'})\
        .groupby(['Subset Cluster', 'Type Cluster'], as_index=False).agg(', '.join)

Output:

  Subset Cluster  Type Cluster      Name                             Subset            System
0     IM, IM, IT    LP, OP, OP  B03, D09  IM-09-B, IM03A, IT-09, IM, IM, IT  A, A, A, B, A, A  
1         IT, IU        PP, OP  A00, B01           IT00, IU00-A, IT-01A, IU        A, A, B, B
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Pandas 进行数据分组 的相关文章

随机推荐

  • 对文件夹中的所有文件执行命令

    我想对目录中的所有文件运行命令 对于 c conversion ajt 中的 1 执行以下操作转换命令 1 2 但是 我需要一个与输入相同但具有不同文件扩展名的输出文件名 asciitojt exe filename1 ajt filena
  • 在 mutate() 中使用列函数的变量

    我如何使用变量来代替列名在 dplyr 字符串中 举个例子 我想向 iris 数据集添加一列 称为 sum 它是 Sepal Length 和 Sepal Width 的总和 简而言之 我想要以下代码的工作版本 x Sepal Length
  • Python str() 双引号字符串

    我知道这个问题听起来很幼稚 但我还是坚持下去 我正在使用 jquery 自动完成 结果发现它需要 data1 data2 形式的列表 我正在从 json 文件获取数据并且 data json load fobj content data s
  • PHP 作曲家 HTTPS 错误 1416F086。证书验证失败

    我突然在使用 PHP Composer 时遇到了这个令人讨厌的 HTTPS 错误 而 Composer 曾经在我的机器上工作 Github 和 stackoverflow 上已经有存在相同问题的主题 我尝试了所有推荐的东西 但没有任何对我有
  • C# - 内部属性在快速观察中“可读”但不使用反射?

    我看到 快速监视 窗口可以访问所有属性 无论库中类的访问限制 内部 受保护 私有 如何 即使在完全不同的应用程序 库和命名空间中引用该库也是如此 然而我没有找到使用 反射 访问这些的方法 我特别尝试 读取 注意 只是读取 程序集的内部属性
  • 字符串文字中的转义状态作为“String#tr”的参数

    对于作为参数的单引号字符串文字中的反斜杠的转义状态 对我来说有些神秘String tr 你能解释一下下面三个例子之间的对比吗 我尤其不明白第二个 为了避免复杂化 我正在使用 d 在这里 当用双引号转义时不会改变含义 d d tr x gt
  • 使用反应式扩展观察传入的 websocket 消息?

    我想使用 linq 来处理通过 websocket 连接接收到的事件 这是我到目前为止所拥有的 private static void Main string WsEndpoint wss push planetside2 com stre
  • 服务中的可运行对象是否在 UI 线程上运行

    在 Android 中 当我在服务内创建一个可运行对象并运行它时 虽然我意识到它在自己的线程中运行 但该线程是否是 UI 线程的一部分 换句话说 如果runnable执行了一个很长的过程 会影响UI吗 EDIT private class
  • 如何根据行中的文本单击表格中的链接

    使用 page object 和 watir webdriver 如何根据行文本单击表中的链接 如下所示 该表包含 3 行 第一列中有名称 右侧列中有相应的详细信息链接 仪表板 详细信息 示例 详细信息 等等 div class basic
  • Google 地图:为什么我会收到referer-not-allowed-map-error? [关闭]

    Closed 这个问题需要调试细节 目前不接受答案 我有一个 Android 应用程序 在 Play 商店之外 它使用带有 Javascript 的 HTML 页面来调用 Google 地图 我得到一个referer not allowed
  • 如何向服务器套接字写入字节

    我正在编写一个java套接字程序来从服务器读取数据 我无法控制服务器 下面是约定的协议 2字节 幻数 2字节 数据长度 N 字节 ASCII 字符串数据有效负载 幻数和数据长度的大端序 例如 如果我的请求是 command 1 getuse
  • 如果 value 中的 a 值等于 R 中的上一行,则删除整行

    我是 R 编程新手 需要帮助根据单列的值删除整行 如果单列中的值等于前一行的值 我想删除该行 以下是我的数据 x id x timestamp x count 71 1 1435114605 61 72 1 1435114606 61 73
  • WordPress自定义文件在页面上传

    我目前正在使用此代码进行 PHP 文件上传 直接在 WordPress 页面上找到
  • 徽标/图像未显示在shinyapps.io 上

    我的徽标正在显示本地 R 闪亮 但是当我将应用程序部署到闪亮应用程序io 在这里检查应用程序 标志显示一张空白图片 有人可以帮我吗 The blank logo My code library dplyr library shiny lib
  • Highcharts 多线图

    这是我的小提琴 http jsfiddle net a4UQf Code function container highcharts title text Monthly Average Temperature x 20 center su
  • 在 Django 中序列化外键对象

    我一直致力于在 Django 中开发一些 RESTful 服务 以便与 Flash 和 Android 应用程序一起使用 开发服务接口非常简单 但我在序列化具有外键和多对多关系的对象时遇到了问题 我有一个这样的模型 class Artifa
  • python脚本杀死并启动自身

    我想在一小时内达到指定时间时启动 python 脚本的新实例并杀死当前实例 python 脚本使用 crontab 在启动时自动启动 无限 while 循环读取数据 如果在第 59 秒 30 和第 59 秒 59 之间有数据传入 则文件将关
  • PyRhO 似乎在安装时破坏了我的其他库

    我正在运行 Ubuntu 18 10 和 Python 3 6 并且已经使用这台笔记本电脑和常见的 Python 库 numpy scipy matplotlib 几个月了 没有任何问题 我用了 pip3 install pyrho 安装P
  • Phalcon 和 nginx - 框架仅运行 indexController

    我正在使用 Phalcon 和 Nginx 但遇到了问题 当我去http myapp dev segmentationPhalcon 应该运行 SegmentationController 及其 indexAction 方法 但相反 Pha
  • 使用 Pandas 进行数据分组

    我有一个数据框 Name Subset Type System A00 IU00 A OP A A00 IT00 PP A B01 IT 01A PP B B01 IU OP B B03 IM 09 B LP A B03 IM03A OP