Pandas GroupBy 日期范围取决于每行

2024-02-13

我想做以下事情:

对于如下所示的数据框:

df = pd.DataFrame({"ID":["A", "A", "C" ,"B", "B"], "date":["06/24/2014","06/25/2014","06/23/2014","07/02/1999","07/02/1999"], "value": ["3","5","1","7","8"] })

我想按日期对所有相隔 2 天内的观察结果进行分组。然后,例如,前 3 行将被分组,后两行将被分组。

到目前为止,我想到过使用类似的东西:

df.groupby(df['date'].map(lambda x: x.month))

进行这种类型的“模糊分组”的一般方法是什么?

谢谢你,


您可以按以下方式对行进行排序date,然后计算连续日期之间的差值。 当差异大于2天时进行测试。取累积和分配所需的组号:

import pandas as pd
df = pd.DataFrame({"ID":["A", "A", "C" ,"B", "B"], "date":["06/24/2014","06/25/2014","06/23/2014","07/02/1999","07/02/1999"], "value": ["3","5","1","7","8"] })
df['date'] = pd.to_datetime(df['date'])
df = df.sort_values(by='date')
df['group'] = (df['date'].diff() > pd.Timedelta(days=2)).cumsum()
print(df)

yields

  ID       date value  group
3  B 1999-07-02     7      0
4  B 1999-07-02     8      0
2  C 2014-06-23     1      1
0  A 2014-06-24     3      1
1  A 2014-06-25     5      1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Pandas GroupBy 日期范围取决于每行 的相关文章

随机推荐

  • 从集成到现有 Android 应用程序的 React Native 应用程序中获取结果

    我发现很多文章都在讨论如何将 React Native 集成到现有的 Android 应用程序中 但他们都没有解释如何从 React Native 代码中获取结果 以便直接在 Java Android 源代码中使用它 说明 我有一个反应本机
  • 如何配置 Azure 通知中心以使用 APNS 令牌身份验证模式?

    我正在尝试使用令牌作为身份验证模式在 Azure 通知中心添加 APNS 连接 我已经四处搜寻 但无法在任何地方找到任何指南来完成这项工作 也许有人有一个指南链接 显示如何查找所需的信息 我尝试在 Apple 开发人员控制台中创建一个 AP
  • 如何在Qt中打开ios画廊

    我正在尝试使用 Qt 打开 ios 图库 我发现了很多文章和答案 我测试了它们 但它们在 ios 10 中不起作用 这是两个对我不起作用的链接 链接 1 使用 FileDialog 打开 ios 图库 https stackoverflow
  • 查找表列中的最大值

    我正在 Grails 中创建一个版本控制域类 class VersionControl Date dateCreated Long versionNumber Long getLatestVersionNumber return large
  • Objective-C 中的类别用法

    我看到我继承的一些代码如下所示 interface SomeClass private 这是在SomeClass m 实施文件 有一个附带的头文件 它并不表明该类正在使用类别 是 private 在这种情况下 只是给一个类别起了一个糟糕的名
  • 在 R Studio 的 R 中以 Markdown 形式生成代码块括号的键盘快捷键

    是否有键盘快捷键可以在 Rmarkdown 中生成代码块括号 r on pc in RStudion it s Ctrl Alt i
  • 具有级联 DropDownList 的 Kendo UI 网格

    我的 Razor 布局上有一个 Kendo UI 网格 它从控制器获取数据 在此网格中 我希望有一组 3 个 DropDownList 它们是 ProductGroups Products Services 我希望实现的行为是 当我向网格添
  • 使用 Java 从大整数数组中删除重复项

    您是否知道使用 Java 从非常大的整数数组中删除重复值的省时方法 数组的大小取决于登录的用户 但始终会超过 1500000 个未排序的值 并有一些重复项 每个整数都包含 100000 到 9999999 之间的数字 我尝试将其转换为列表
  • 使用 Fluent nhibernate 映射实体 oneToMany

    问题似乎很简单 但是我在尝试映射这个实体时遇到了很多麻烦 我只是看不出我做错了什么 你们能帮我吗 我有课Cliente public class Cliente public Cliente public virtual int Clien
  • 在进程之间共享类实例的方法

    我编写了一个 C 类 我需要在至少两个 Windows 进程之间共享一个实例 有哪些不同的方法可以做到这一点 最初我调查了 pragma data seg http msdn microsoft com en us library h90d
  • R Shiny 应用程序中的安全性

    我想发布一个 R Shiny Web 应用程序 http www rstudio com shiny http www rstudio com shiny 在网络上 但我想用密码保护它 以便只有拥有凭据的人才能查看我发布的内容 做这个的最好
  • 如何在 JavaScript 中将通配符元素名称与“querySelector()”或“querySelectorAll()”匹配?

    有没有办法使用通配符元素名称匹配querySelector or querySelectorAll 我试图解析的 XML 文档基本上是一个简单的属性列表 我需要找到名称中包含某些字符串的元素 我看到属性查询中支持通配符 但不支持元素本身 除
  • Node.js 中固定位置命令提示符

    有没有办法让命令提示符 只是一个question http nodejs org api readline html readline rl question query callback提示符或类似的东西 固定在终端的底部 并使用它来记录
  • AWS Glue:爬网程序无法识别 CSV 格式的时间戳列

    运行 AWS Glue 爬网程序时 它无法识别时间戳列 我已在 CSV 文件中正确设置 ISO8601 时间戳的格式 首先 我希望 Glue 能够自动将它们分类为时间戳 但事实并非如此 我还尝试从此链接中使用自定义时间戳分类器https d
  • 有没有办法将 Ruby Net::HTTP 请求附加到特定的 IP 地址/网络接口?

    我正在寻找一种方法 通过标准 Net HTTP 库为每个 GET 请求使用不同的 IP 地址 服务器有 5 个 IP 地址 并假设当达到每个 IP 的请求限制时 某些 API 会阻止访问 因此 唯一的方法是使用另一台服务器 我在 ruby
  • Python 中的 N-curses:如何捕获并打印非 ASCII 字符?

    我想用 ncurses python 制作一个小程序 并且能够使用 输入法语和日语 我知道我应该设置区域设置并使用 unicode 标准 但是如何处理 screen getch 的结果呢 我想在 ncurses 窗口中显示键入的字符 而不管
  • 刷新 Azure AD B2C 中的令牌撤销

    在我的 AD B2C 应用程序中 我需要撤销 AD B2C 为用户提供的所有刷新令牌 当用户帐户登录多个应用程序并且在一个应用程序中用户更改了密码时 这是一项需要实施的要求 更改密码后 我已撤销给予其他应用程序的所有刷新令牌 怎么做 Upd
  • 找不到 weblogic maven 插件

    我按照这个教程安装 weblogic 插件 http docs oracle com cd E21764 01 web 1111 e13702 maven deployer htm http docs oracle com cd E2176
  • 缺少 Firebase app_update 事件

    我看到了巨大的差异app updateFirebase 自动发送的事件以及用户群在发布时真正转换为新版本的情况 例如新版本发布期间的 5 天 120 个事件 VS 3k 用户 x20 差异 我确实检查了另一个 alpha 更新 其中数据导出
  • Pandas GroupBy 日期范围取决于每行

    我想做以下事情 对于如下所示的数据框 df pd DataFrame ID A A C B B date 06 24 2014 06 25 2014 06 23 2014 07 02 1999 07 02 1999 value 3 5 1