Pandas - 计算过去 x 天数的值频率

2023-12-10

我发现了一些意想不到的结果。我想做的是创建一个列来查看 ID 号和日期,并计算该 ID 号在过去 7 天内出现的次数(我还想让该列动态化 x 数量)天,但只是尝试 7 天)。

所以给定这个数据框:

import pandas as pd



df = pd.DataFrame(
        [['A', '2020-02-02 20:31:00'],
        ['A', '2020-02-03 00:52:00'],
        ['A', '2020-02-07 23:45:00'],
        ['A', '2020-02-08 13:19:00'],
        ['A', '2020-02-18 13:16:00'],
        ['A', '2020-02-27 12:16:00'],
        ['A', '2020-02-28 12:16:00'],
        ['B', '2020-02-07 18:57:00'],
        ['B', '2020-02-07 21:50:00'],
        ['B', '2020-02-12 19:03:00'],
        ['C', '2020-02-01 13:50:00'],
        ['C', '2020-02-11 15:50:00'],
        ['C', '2020-02-21 10:50:00']],
        columns = ['ID', 'Date'])

用于计算每个实例在过去 7 天内出现次数的代码:

df['Date'] = pd.to_datetime(df['Date'])

delta = 7
df['count_in_last_%s_days' %(delta)] = df.groupby(['ID', pd.Grouper(freq='%sD' %delta, key='Date')]).cumcount()

Output:

   ID                Date  count_in_last_7_days
0   A 2020-02-02 20:31:00                     0
1   A 2020-02-03 00:52:00                     1
2   A 2020-02-07 23:45:00                     2
3   A 2020-02-08 13:19:00                     0 #<---- This should output 3
4   A 2020-02-18 13:16:00                     0
5   A 2020-02-27 12:16:00                     0
6   A 2020-02-28 12:16:00                     1
7   B 2020-02-07 18:57:00                     0
8   B 2020-02-07 21:50:00                     1
9   B 2020-02-12 19:03:00                     0 #<---- THIS SHOULD OUTPUT 2
10  C 2020-02-01 13:50:00                     0
11  C 2020-02-11 15:50:00                     0
12  C 2020-02-21 10:50:00                     0

你不想使用Grouper on Date but a rolling窗户。石斑鱼会将数据帧分割成所需持续时间的单独连续块。由于您希望每次约会后有 7 天,因此这就是rolling:

delta = 7
df['count_in_last_%s_days' %(delta)] = df.assign(count=1).groupby(
    ['ID']).apply(lambda x: x.rolling('%sD' %delta, on='Date').sum(
        ))['count'].astype(int) - 1

它按预期给出:

   ID                Date  count_in_last_7_days
0   A 2020-02-02 20:31:00                     0
1   A 2020-02-03 00:52:00                     1
2   A 2020-02-07 23:45:00                     2
3   A 2020-02-08 13:19:00                     3
4   A 2020-02-18 13:16:00                     0
5   A 2020-02-27 12:16:00                     0
6   A 2020-02-28 12:16:00                     1
7   B 2020-02-07 18:57:00                     0
8   B 2020-02-07 21:50:00                     1
9   B 2020-02-12 19:03:00                     2
10  C 2020-02-01 13:50:00                     0
11  C 2020-02-11 15:50:00                     0
12  C 2020-02-21 10:50:00                     0
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Pandas - 计算过去 x 天数的值频率 的相关文章

  • 如何在 __init__ 中使用await设置类属性

    我如何定义一个类await在构造函数或类体中 例如我想要的 import asyncio some code class Foo object async def init self settings self settings setti
  • 在 Python 中将列表元素作为单独的项目返回

    Stackoverflow 的朋友们大家好 我有一个计算列表的函数 我想单独返回列表的每个元素 如下所示 接收此返回的函数旨在处理未定义数量的参数 def foo my list 1 2 3 4 return 1 2 3 4 列表中的元素数
  • VSCode Settings.json 丢失

    我正在遵循教程 并尝试将 vscode 指向我为 Scrapy 设置的虚拟工作区 但是当我在 VSCode 中打开设置时 工作区设置 选项卡不在 用户设置 选项卡旁边 我还尝试通过以下方式手动转到文件 APPDATA Code User s
  • 嵌套列表的重叠会产生不必要的间隙

    我有一个包含三个列表的嵌套 这些列表由 for 循环填充 并且填充由 if 条件控制 第一次迭代后 它可能类似于以下示例 a 1 2 0 0 0 0 0 0 4 5 0 0 0 0 0 0 6 7 根据条件 它们不重叠 在第二次迭代之后 新
  • 从Django中具有外键关系的两个表中检索数据? [复制]

    这个问题在这里已经有答案了 This is my models py file from django db import models class Author models Model first name models CharFie
  • python multiprocessing 设置生成进程等待

    是否可以生成一些进程并将生成进程设置为等待生成的进程完成 下面是我用过的一个例子 import multiprocessing import time import sys def daemon p multiprocessing curr
  • Tensorboard SyntaxError:语法无效

    当我尝试制作张量板时 出现语法错误 尽管开源代码我还是无法理解 我尝试搜索张量板的代码 但不清楚 即使我不擅长Python 我这样写路径C Users jh902 Documents logs因为我正在使用 Windows 10 但我不确定
  • Python 3:将字符串转换为变量[重复]

    这个问题在这里已经有答案了 我正在从 txt 文件读取文本 并且需要使用我读取的数据之一作为类实例的变量 class Sports def init self players 0 location name self players pla
  • 使用 Python Oauthlib 通过服务帐户验证 Google API

    我不想使用适用于 Python 的 Google API 客户端库 但仍想使用 Python 访问 Google APIOauthlib https github com idan oauthlib 创建服务帐户后谷歌开发者控制台 http
  • 嵌套作用域和 Lambda

    def funct x 4 action lambda n x n return action x funct print x 2 prints 16 我不太明白为什么2会自动分配给n n是返回的匿名函数的参数funct 完全等价的定义fu
  • Django 视图中的“请求”是什么

    在 Django 第一个应用程序的 Django 教程中 我们有 from django http import HttpResponse def index request return HttpResponse Hello world
  • Python - 如何确定解析的 XML 元素的层次结构级别?

    我正在尝试使用 Python 解析 XML 文件中具有特定标记的元素并生成输出 excel 文档 该文档将包含元素并保留其层次结构 我的问题是我无法弄清楚每个元素 解析器在其上迭代 的嵌套深度 XML 示例摘录 3 个元素 它们可以任意嵌套
  • 找到一个数字所属的一组范围

    我有一个 200k 行的数字范围列表 例如开始位置 停止位置 该列表包括除了非重叠的重叠之外的所有类型的重叠 列表看起来像这样 3 5 10 30 15 25 5 15 25 35 我需要找到给定数字所属的范围 并对 100k 个数字重复该
  • 在 Google App Engine 中,如何避免创建具有相同属性的重复实体?

    我正在尝试添加一个事务 以避免创建具有相同属性的两个实体 在我的应用程序中 每次看到新的 Google 用户登录时 我都会创建一个新的播放器 当新的 Google 用户在几毫秒内进行多个 json 调用时 我当前的实现偶尔会创建重复的播放器
  • 带有 LSTM 的 GridSearchCV/RandomizedSearchCV

    我一直在尝试通过 RandomizedSearchCV 调整 LSTM 的超参数 我的代码如下 X train X train reshape X train shape 0 1 X train shape 1 X test X test
  • 如何使用 Boto3 启动具有 IAM 角色的 EC2 实例?

    我无法弄清楚如何使用指定的 IAM 角色在 Boto3 中启动 EC2 实例 以下是迄今为止我如何成功创建实例的一些示例代码 import boto3 ec2 boto3 resource ec2 region name us west 2
  • 如何将 Django 中的权限添加到模型并使用 shell 进行测试

    我在模型中添加了 Meta 类并同步了数据库 然后在 shell 中创建了一个对象 它返回 false 所以我真的无法理解错误在哪里或者缺少什么是否在其他文件中可能存在某种配置 class Employer User Employer in
  • 如何使用 PrimaryKeyRelatedField 更新多对多关系上的类别

    Django Rest 框架有一个主键相关字段 http www django rest framework org api guide relations primarykeyrelatedfield其中列出了我的 IDmany to m
  • 如何在 Flask 中的视图函数/会话之间传递复杂对象

    我正在编写一个 Web 应用程序 当 且仅当 用户登录时 该应用程序从第三方服务器接收大量数据 这些数据被解析为自定义对象并存储在list 现在 用户在应用程序中使用这些数据 调用不同的视图 例如发送不同的请求 我不确定什么是最好的模式在视
  • python 对浮点数进行不正确的舍入

    gt gt gt a 0 3135 gt gt gt print 3f a 0 314 gt gt gt a 0 3125 gt gt gt print 3f a 0 312 gt gt gt 我期待 0 313 而不是 0 312 有没有

随机推荐

  • 如何通过使用 pycryptodome 的 pyinstaller 构建可执行文件?

    我正在尝试构建以下使用的脚本密码球 based on this example http www codekoala com posts aes encryption python using pycrypto comment 259217
  • Azure 迁移网站主机名

    我正在尝试在不同的订阅中设置辅助 Azure 网站 为新站点位置创建自定义主机名时 我被迫验证主机名 Azure 抱怨主机名是根据不同的 CNAME 注册的 并阻止我添加它 这是事实 但我不在乎 我希望将其从旧网站切换到 DNS 记录传播时
  • 必须声明一个主体,因为它没有标记为抽象或外部? C#/ASP.NET

    我有一个带有代码隐藏的普通 Web 表单 在这个代码隐藏中 我可以实例化根文件夹中的几个类 例如 public partial class Default System Web UI Page Helper helper new Helpe
  • 如何向 JTabbedPane 选项卡添加关闭按钮?

    我正在使用 JTabbedPane 我需要在选项卡中添加一个关闭按钮来关闭当前选项卡 我一直在搜索 据我了解 我必须从 JPanel 扩展并添加关闭按钮 正如他们所说here但是 有没有办法添加扩展 JTabbedPane 的关闭按钮 或者
  • WriteStream 无法在 Delta 表中写入数据

    我正在尝试使用以下代码从流路径连接 Streaming Json 文件 Schema1 customerId STRING orderId STRING products ARRAY
  • 正在寻找“分词器”、“解析器”和“词法分析器”的明确定义以及它们如何相互关联和使用?

    我正在寻找 分词器 解析器 和 词法分析器 的明确定义以及它们如何相互关联 例如 解析器是否使用分词器 反之亦然 我需要创建一个程序将通过 c h 源文件来提取数据声明和定义 我一直在寻找示例并且可以找到一些信息 但我真的很难掌握语法规则
  • Java:按指定的角度值围绕另一个点旋转点

    我试图将 java 中的 2D 点围绕另一个具有指定度数值的点旋转 在本例中只是围绕点 0 0 旋转 90 度 Method public void rotateAround Point center double angle x cent
  • Android 中的 GSON/Jackson

    我能够使用 JSONObject 和 JSONArray 成功解析 Android 中的以下 JSON 字符串 没有成功地使用 GSON 或 Jackson 获得相同的结果 有人可以帮助我使用包括 POJO 定义的代码片段来使用 GSON
  • 如何将 mutate 与具有多个参数的自定义函数一起使用

    我在 jared mamrot 的帮助下创建了这个自定义函数制作 dplyr 过程的自定义函数 它基本上采用一个数据框 一列和一个数字作为参数 并用 NA 替换该列中定义的值的百分比 y my func lt function df x y
  • Redis GET 与 SQL SELECT

    我对 NoSQL 还很陌生 但我一直很喜欢它的想法 我看了一下Redis 并提出了一些有关存储和接收多个的最佳方式的问题hashes 假设以下场景 Store a list of objects redis Hashes and selec
  • 解析 iOS 推送通知

    我已经完成了 Push 的事情解析网 一切正常 然后我被要求为公司创建一个解析帐户并进行设置 以便他们可以自己管理 好吧 没有意识到网站上有一个导出按钮 我删除了我帐户上的应用程序 并为他们创建了一个帐户 并将应用程序添加到他们的帐户中 我
  • .NET 反射:如何获取部分类上定义的属性

    我使用 NET 实体框架 我想将属性从一个 EntityObject 复制到另一个 但 System Type GetProperties 似乎没有返回分部类上定义的属性 Code 在 Visual Studio 生成的 XXX edmx
  • 使用 mysql 选择前 N 个*组*

    为了简单起见 假设我有一个包含 2 个字段的表 PERSON NAME 和 COMPANY ID 以及这些对 a 1 b 1 c 2 d 2 e 3 PERSON NAME a 和 b 在 COMPANY ID 1 工作 依此类推 我想选择
  • 将产品附加字段添加到 WooCommerce 上的特定产品

    我需要更改代码 以便不在我的所有 WooCommerce 产品上显示文本区域 但只有 2 个 这是在我的 WordPress 子主题上functions php file 我已将 product id 更改为 product id 2130
  • XSLT 为同一 XSL 的同一输入 XML 获取两个不同的输出

    我一直在在线工具中尝试我的 XSLT 代码 XSLT 1 0 处理器 http www freeformatter com xsl transformer html 最近 我不得不利用xs dateTime因此开始使用使用的工具XSLT 2
  • iOS CoreBluetooth 未扫描 iPad Air 中的服务

    我正在开发一个连接到 BLE 外设并从中接收数据的应用程序 它扫描外围设备 找到外围设备 发现服务 如果找到正确的服务 它就会接收数据 它在 iPhone 5 上运行良好 但当我在 iPad Air 上运行它时 它可以连接 但没有发现任何服
  • 防止网站上的暴力登录

    作为对最近的回应推特劫持 and Jeff 关于字典攻击的帖子 保护您的网站免受暴力登录攻击的最佳方法是什么 Jeff 的帖子建议为每次尝试登录增加延迟 并且评论中的建议是在第二次失败的尝试后添加验证码 这两个看起来都是好主意 但是你怎么知
  • XSLT、XML:按属性值分组

    使用 XSLT 根据属性值对元素进行分组的最佳方法是什么 使用 XSLT 2 0 或更高版本会更好吗 非常感谢您的帮助 Thomas 原始 XML
  • 如何使用宏将多个网页的数据提取到Excel中

    我正在尝试从一个特定网站将数据提取到 Excel 2007 中 但数据分布在多个网页上 我想在我的工作表中看到的是该网站上提供了哪些项目 而无需浏览许多页面或使用搜索 我的浏览器中有点错误 我尝试过通过 Excel 导入数据 但这只适用于一
  • Pandas - 计算过去 x 天数的值频率

    我发现了一些意想不到的结果 我想做的是创建一个列来查看 ID 号和日期 并计算该 ID 号在过去 7 天内出现的次数 我还想让该列动态化 x 数量 天 但只是尝试 7 天 所以给定这个数据框 import pandas as pd df p