在其他列定义的窗口内累积应用

2024-04-20

我试图将函数累积地应用于由“开始”和“完成”列定义的窗口内的值。因此,“开始”和“完成”定义了值处于“活动”的时间间隔;对于每一行,我想获得当时所有“活动”值的总和。

这是一个“暴力”示例,它实现了我想要的功能 - 是否有更优雅、更快或更有效的内存效率来执行此操作?

df = pd.DataFrame(data=[[1,3,100], [2,4,200], [3,6,300], [4,6,400], [5,6,500]],
    columns=['start', 'finish', 'val'])
df['dummy'] = 1
df = df.merge(df, on=['dummy'], how='left')
df = df[(df['start_y'] <= df['start_x']) & (df['finish_y'] > df['start_x'])]
val = df.groupby('start_x')['val_y'].sum()

原来,df 是:

  start  finish  val
0   1      3     100
1   2      4     200
2   3      6     300
3   4      6     400
4   5      6     500

我追求的结果是:

1   100
2   300
3   500
4   700
5   1200

numba

from numba import njit

@njit
def pir_numba(S, F, V):
  mn = S.min()
  mx = F.max()
  out = np.zeros(mx)
  for s, f, v in zip(S, F, V):
    out[s:f] += v
  return out[mn:]

pir_numba(*[df[c].values for c in ['start', 'finish', 'val']])

np.bincount

s, f, v = [df[col].values for col in ['start', 'finish', 'val']]
np.bincount([i - 1 for r in map(range, s, f) for i in r], v.repeat(f - s))

array([ 100.,  300.,  500.,  700., 1200.])

理解

这取决于index是独一无二的

pd.Series({
    (k, i): v
    for i, s, f, v in df.itertuples()
    for k in range(s, f)
}).sum(level=0)

1     100
2     300
3     500
4     700
5    1200
dtype: int64

不依赖于index

pd.Series({
    (k, i): v
    for i, (s, f, v) in enumerate(zip(*map(df.get, ['start', 'finish', 'val'])))
    for k in range(s, f)
}).sum(level=0)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在其他列定义的窗口内累积应用 的相关文章

  • 数据操作 startdate enddate python pandas

    我有一个促销描述数据集 其中包含有关正在运行的各种促销活动及其开始日期 结束日期的信息 promo item start date end date Buy1 get 1 A 2015 01 08 2015 01 12 Buy1 get 1
  • Pytorch 损失为 nan

    我正在尝试用 pytorch 编写我的第一个神经网络 不幸的是 当我想要得到损失时遇到了问题 出现以下错误信息 RuntimeError Function LogSoftmaxBackward0 returned nan values in
  • 以类似字典的方式将新项目添加到某些结构化数组中

    我想扩展 numpy 中的结构化数组对象 以便我可以轻松添加新元素 例如 对于一个简单的结构化数组 gt gt gt import numpy as np gt gt gt x np ndarray 2 dtype names A B fo
  • 将新形状传递给“np.reshape”

    Within numpy ndarray reshape https docs scipy org doc numpy reference generated numpy ndarray reshape html the shape参数是一
  • 如何在cvxpy中编写多个约束?

    我想在 cvxpy 下的优化问题中添加许多约束 在 matlab 中 我可以通过添加一行 subject to 然后使用 for 循环来生成约束 我怎样才能在 cvxpy 中做同样的工作 因为 cvxpy 中没有 服从 概念 有什么建议吗
  • 日期/时间值的 Django URL 转换器

    我正在尝试使用 Django 内置的 URL 转换器将 URL 中的日期时间字符串转换为视图中的日期对象 如果我手动输入 URL 它们会按预期工作 但尝试为其生成 URL 时找不到匹配项 我的转换器很简单 from django utils
  • Django/gevent socket.IO 与 redis pubsub。我把东西放在哪里?

    我有一个独立的 python 脚本 它只是从 Twitter 的流 API 捕获数据 然后在收到每条消息时 使用 redis pubsub 将其发布到频道 tweets 这是该脚本 def main username username pa
  • 可视化时间序列时标记特定日期

    我有一个包含几年数据的时间序列 例如 ts pd Series np random randn 1000 index pd date range 1 1 2000 periods 1000 ts ts cumsum ts plot 我还有两
  • 从 SQL Server 中调用 Python 文件

    我的文件名中有 Python 脚本 C Python HL py 在此 Python 脚本中 有预测模型以及对 SQL 数据库中某些表的更新 我想将此文件称为 SQL 作业 我怎样才能做到这一点 这个问题不一样 如何在 SQL Server
  • 使用 asyncore 读取网站

    我想异步阅读一个网站 据我所知 这是不可能的 urllib 现在我尝试使用普通套接字进行阅读 但是 HTTP 给我带来了麻烦 我遇到了各种时髦的编码 例如传输编码 分块 必须手动解析所有这些东西 我现在想编码 C 而不是 python 难道
  • 使用 Pandas 滚动差异

    您好 我正在尝试使用 Pandas 滚动函数来计算下表中的滚动差异 我正在尝试生成 每月可用项目 列中的值 但没有得到任何结果 请帮忙 Item Adds Subtracts Month Monthly Available items A
  • Python、cPickle、酸洗 lambda 函数

    我必须像这样腌制一组对象 import cPickle as pickle from numpy import sin cos array tmp lambda x sin x cos x test array tmp tmp tmp tm
  • 为什么在 python 控制台中对 SparkSession.builder.getOrCreate() 的调用被视为命令行 Spark-submit?

    代替python console我正在尝试创建一个Spark Session 我没有使用pyspark以隔离依赖关系 为什么是spark submit命令行提示并生成错误 NOTE SPARK PREPEND CLASSES is set
  • 在 Python 中将 int 转换为 ASCII 并返回

    我正在为我的网站制作一个 URL 缩短器 我当前的计划 我愿意接受建议 是使用节点 ID 来生成缩短的 URL 因此 理论上 节点 26 可能是short com z 节点 1 可能是short com a 节点 52 可能是short c
  • 包装 C++ Qt 小部件以便在 Python 中与 PySide 一起使用

    在 Python 中使用自定义 Qt 显示小部件包装自定义 C 库以便在基于 PySide 的 QApplication 中使用的最佳方法是什么 C 库是否需要特殊处理才能使用 SWIG 进行包装 封装的 Qt 小部件能否与 PySide
  • 将 Matlab MEX 文件中的函数直接嵌入到 Python 中

    我正在使用专有的 Matlab MEX 文件在 Matlab 中导入一些仿真结果 当然没有可用的源代码 Matlab 的接口实际上非常简单 因为只有一个函数 返回一个 Matlab 结构体 我想知道是否有任何方法可以直接从Python调用M
  • 计算素数并附加到列表

    我最近开始尝试使用 python 解决 Euler 项目的问题 并且在尝试计算素数并将其附加到列表中时遇到了这个障碍 我编写了以下代码 但我很困惑为什么它在运行时不输出任何内容 import math primes def isPrime
  • 在 python 中计时时,我应该如何考虑 subprocess.Popen() 开销?

    编码社区的成员比我更聪明 我有一个 python 问题要问你们 我正在尝试优化一个 python 脚本 该脚本 除其他外 返回子进程执行和终止的挂钟时间 我想我已经接近这样的事情了 startTime time time process s
  • 是否可以使用 Python 中的密码安全地加密然后解密数据?

    我在 python 程序中有一些数据 我想在使用密码写入文件之前对其进行加密 然后在使用它之前读取并解密它 我正在寻找一些可以根据密码进行加密和解密的安全对称算法 这个问题 https stackoverflow com questions
  • mypy 错误:赋值中的类型不兼容(表达式的类型为“Dict[, ]”,目标的类型为“List[str]”)

    我尝试过了实例化一个空字典在现有字典的第二层上 然后为其分配一个键值对 但 MyPy 会抛出错误 这是一个最小的示例 当激活 MyPy 检查时它将重现它 result Test something result key result key

随机推荐

  • 无法解决目标“android-18”错误

    我无法下载目标 android 18 文件 在 default properties 文件中 set target android 18 还要检查您是否安装了此 API 级别并在属性窗口中检查它 例如 在我的例子中选择了 17
  • 制作不与顶部重叠的固定顶栏的最佳方法是什么?

    例如 stackoverflow 有一个供新成员使用的顶栏 顶栏是固定的 向下推页面而不与页面顶部重叠 这是如何实现的 JavaScript 或者只用 css 就可以做到这一点 您可以执行以下操作来创建固定标头 div class head
  • 如何修复 SQL Server 中阿拉伯文与英文混合的反向字符

    我有一个 SQL Server 数据库 表列在同一字段中包含阿拉伯语和英语字符 就像Oracle 寻求您的帮助 将阿拉伯字符与英文字符分开以反转它们 因为阿拉伯字符在字段中没有特定的位置 开始 结束或中间 Edit这些字符来自旧版 IBM
  • Angularjs 表单验证顺序

    我有一个简单的 html 表单 其中包含常规文本输入 ng minlength ng maxlength and ng pattern有角的内置表单输入指令 http docs angularjs org api ng directive
  • #的目的是什么!在网址中[重复]

    这个问题在这里已经有答案了 可能的重复 Facebook 和新 Twitter URL 中的 shebang 有何用途 https stackoverflow com questions 3009380 whats the shebang
  • 使用张量流实现 RBM

    我正在尝试用tensorflow实现RBM 代码如下 rbm py An rbm implementation for TensorFlow based closely on the one in Theano import tensorf
  • 在 iOS 设备上使用网络链接调节器

    如何直接在我的 iOS 设备上模拟各种网络状况 我知道这在 Mac 上是可能的 这要归功于网络链路调节器 http mattgemmell com 2011 07 25 network link conditioner in lion iO
  • Express-Session、Connect-Redis 和 einaros/ws

    我似乎在让 Express express session connect redis 和 websockets ws 很好地协同工作时遇到了一些麻烦 这很可能与我对这些模块和编码的总体理解还有限有关 这里的大部分代码取自存储库中的相应示例
  • 不要从序列化的 DateTime 对象中序列化或删除 TimeZone

    我收到的一个奇怪的任务是使用 XML 序列化来序列化一个大对象 该对象包含多个嵌套的 UserDefined 类 以及多个 DateTime 字段 日期时间数据的要求是它必须始终显示在最初创建和设置数据的用户的时区中 因此 我无法使用 UT
  • Objective C / iPhone:如何提取当前区域的实际 unicode 日期格式字符串?

    根据该网站 http iosdevelopertips com cocoa date formatter examples html http iosdevelopertips com cocoa date formatter exampl
  • 通过 SignalR 在 IE 中缺少原型方法

    我遇到了一个问题 即仅在 IE 中并且仅当数组通过 SignalR 时才处理原型方法消失 在本例中为 Array prototype 方法 我写了一个小 愚蠢但简单的概念验证网络应用程序来演示这个问题 代码全部在下面 请注意 当您单击 更新
  • 如何在 reStructuredText / Sphinx 中创建浮动图形?

    我想要一个带有文字的图形 这就是我要说的 Installation of Optional Accessories warning Never plug in or unplug a Hand Robot or a Grasp Sensor
  • TS2611:“foo”被定义为类“A”中的属性,但在“B”中作为访问器被覆盖

    我在 Angular 应用程序中遇到 Typescript 编译错误 以下是示例代码和错误消息 请您指导我抑制这个错误 我认为根据 Javascript 这段代码是正确的 error TS2611 foo is defined as a p
  • 如何在 EF DbFirst 中扩展 ASP IdentityRole

    如何扩展 IdentityRoles 以使用扩展的 AspNetRoles 表 在 ASP MVC 5 中 使用 Identity 2 2 我看了here https stackoverflow com q 40336574 6085193
  • 将异常从 Objective-C 引发回 Javascript

    JavascriptCore 允许我们通过 JSExport 协议将 Objective C 类公开给 javascript 比方说 在公开的 Objective C 类的方法之一中 遇到了需要引发异常的情况 有没有办法创建所述异常并引发它
  • 在 Android 中使用 Asynctask 显示进度条

    我正在尝试显示进度条 我是一名安卓初学者 当我按下按钮时 任务应该在后台运行 但它不显示进度栏 什么是问题 我无法理解 请帮我 主要活动 package com example shikkok services import java ut
  • 添加 Windows Common Controls 6.0 时对象库未注册

    我正在尝试在 Windows 7 32 位计算机上安装 Visual Studio 6 操作系统安装是从裸机进行的 我按照提到的说明进行操作here http www fortypoundhead com showcontent asp a
  • 如何检查png文件是否是减压炸弹

    我正在尝试将图像上传到网站 我发现在允许上传时可能会发生这些减压炸弹攻击png文件 和其他一些 由于我要更改上传的图像 我想确保我不会成为这次攻击的受害者 因此 当涉及到检查是否png文件是一个炸弹 我可以读取文件的标题并确保宽度和高度不超
  • 为什么我的递归阶乘方法总是返回 0? [复制]

    这个问题在这里已经有答案了 我创建了一个递归方法来计算数字的阶乘 但是 它总是返回 0 我不明白为什么 我在下面提供了我的代码 public class projectTwenty public static void main Strin
  • 在其他列定义的窗口内累积应用

    我试图将函数累积地应用于由 开始 和 完成 列定义的窗口内的值 因此 开始 和 完成 定义了值处于 活动 的时间间隔 对于每一行 我想获得当时所有 活动 值的总和 这是一个 暴力 示例 它实现了我想要的功能 是否有更优雅 更快或更有效的内存