Pandas 重叠重采样

2023-12-10

我想对我的时间索引 DataFrame 进行一些重叠的重新采样。

例如:

>>> df
                     data
date                     
2018-03-09 12:00:00     1
2018-03-09 12:00:01     1
2018-03-09 12:00:02     1
2018-03-09 12:00:03     1
2018-03-09 12:00:04     1
2018-03-09 12:00:05     1
2018-03-09 12:00:06     1
2018-03-09 12:00:07     1
2018-03-09 12:00:08     1
2018-03-09 12:00:09     1
2018-03-09 12:00:10     1
2018-03-09 12:00:11     2
2018-03-09 12:00:12     2
2018-03-09 12:00:13     2
2018-03-09 12:00:14     2
2018-03-09 12:00:15     2
2018-03-09 12:00:16     2
2018-03-09 12:00:17     2
2018-03-09 12:00:18     2
2018-03-09 12:00:19     2
2018-03-09 12:00:20     2
2018-03-09 12:00:21     3
2018-03-09 12:00:22     3
2018-03-09 12:00:23     3
2018-03-09 12:00:24     3
2018-03-09 12:00:25     3
2018-03-09 12:00:26     3
2018-03-09 12:00:27     3
2018-03-09 12:00:28     3
2018-03-09 12:00:29     3
2018-03-09 12:00:30     3

重采样 10 秒和 2 秒重叠后,结果应如下所示:

>>> df
                     data
date                     
2018-03-09 12:00:10     14
2018-03-09 12:00:20     28
2018-03-09 12:00:30     34

我尝试过分组,但在大数据集上速度非常慢。

有没有一种快速有效的方法来实现这一目标?


假设您的数据是规则间隔的,您可以concat移动系列,然后求和。

N = 10  # Every 10 seconds from first row
ov = 2  # 2s overlap on either side

pd.concat([df.shift(i).iloc[::N] for i in range(-ov, N+ov)], axis=1).sum(1)

date
2018-03-09 12:00:00     3.0
2018-03-09 12:00:10    15.0
2018-03-09 12:00:20    28.0
2018-03-09 12:00:30    34.0
dtype: float64

对于多列,将其转换为groupby沿列轴:

df['data2'] = df['data']+1  # Another column

(pd.concat([df.shift(i).iloc[::N] for i in range(-ov, N+ov)], axis=1)
   .groupby(level=0, axis=1).sum())

                     data  data2
date                            
2018-03-09 12:00:00   3.0    6.0
2018-03-09 12:00:10  15.0   28.0
2018-03-09 12:00:20  28.0   42.0
2018-03-09 12:00:30  34.0   46.0
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Pandas 重叠重采样 的相关文章

随机推荐

  • Python 中的 NZEC 错误

    这是一段简单的代码 假设读取 n 个数字并打印这 n 个数字中有多少个数字可以被 k 整除 n int raw input k int raw input ans 0 while n gt 0 t int raw input if t k
  • Codeigniter连接查询多个条件不起作用

    我想使用连接查询从数据库表中选择数据 但它不起作用 我的查询 this gt db gt select this gt db gt from we this gt db gt join schedule schedule itemid we
  • 如何在Python中从一组线性方程中绘制平面?

    我有一个包含三个方程的线性系统 x1 2x2 x3 0 2x2 8x3 8 4x1 5x2 9x3 9 解集是 29 16 3 它是这些平面相交处的点 希望有人可以使用 Matplotlib 在 3D 空间中绘制这些平面 以便清楚地可视化问
  • 屏蔽文本框验证文本错误

    我在处理从 WinForms 应用程序上的屏蔽文本框提取的日期变量时遇到一些问题 尝试读取用户输入日期的代码如下 DateTime datExpDate new DateTime datExpDate DateTime txtExpDate
  • System.IO.DirectoryInfo.Exists 有其他选择吗

    The System IO DirectoryInfo Exists如果我给出这样的 UNC 总是返回 false 192 168 0 33 Others F 仅当我从已安装的应用程序运行时才会发生这种情况 否则如果路径为真 它将返回 tr
  • 应用程序文档目录的物理路径

    应用程序文档目录的物理路径是什么 在 Mac OS X Lion 上 我知道该文件夹中的每个应用程序都有 UUID 但直到现在才在我的系统上找到它 Open 用户 用户名 库 应用程序支持 iPhone 模拟器 4 3 2 应用程序 假设使
  • 多分区作业的批处理脚本?

    我正在开发一个项目 该项目在大型计算集群的两个不同分区上运行程序 我想使用批处理脚本来运行它 但搜索后 仍然不清楚是否 如何从单个批处理脚本中在两个不同的分区上分配和运行程序 这就是我想做的事情 bin bash SBATCH partit
  • ajax 在 Flask 视图中发布数据

    这是我的视图功能 app route share methods GET POST def share form ShareForm request form if request method POST title form title
  • 如何计算包含特定值的 XML 节点的数量

    我正在寻找如何计算 XML 文件中包含 否 值的节点以及元素总数 我的元素计数工作正常 但我不确定在 XML 内部查找要计数的值的逻辑 为了获得我正在使用的总数 XmlDocument readDoc new XmlDocument rea
  • 如何在 beforeload 事件中获取 Extjs 4 商店的请求数据?

    我正在尝试在商店加载事件之前获取请求数据参数 我可以看到操作对象包含请求数据 但我似乎无法从操作对象获取它 Ext create Ext data Store autoLoad true fields name item code type
  • 如何使用 luasql 创建 Sqlite3 数据库?

    我正在尝试使用 luasql 创建 Sqlite3 数据库 之后我requireluasql sqlite3 如何在文件上创建数据库 另外 我似乎找不到 luasql 的手册 任何地方都可以使用吗 如果数据库不存在 SQLite 将自动创建
  • 在 Windows 批处理中转义特殊字符

    我有一个批处理文件 它接收路径作为第一个参数 该路径始终由特殊字符组成 例如 or 调用类似于这样 D Script gt MyBatch My path test 00170 LASTNAME Firstname image 总是出现这个
  • 我当前在 Eclipse MacOS Big Sur 上进行 GDB 调试时遇到错误

    在 Big Sur 上通过 Homebrew 安装 GDB 后 我目前遇到了一个奇怪的错误 我已经正确配置了 Eclipse 的所有内容 我的 GDB 链接为调试器 但是 每次我尝试启动调试时 都没有任何反应 并且控制台中出现以下内容 00
  • e.keyCode 不起作用

    我想问你一些对我不起作用的事情 如果你能帮助我的话 Html
  • 在 Inno Setup Run 部分命令中扩展 .NET 路径常量时的错误处理/忽略

    我有一个 NET DLL 可以通过以下方式注册RegAsm NET 3 5 和 NET 4 5 我在我的设置脚本中使用以下代码 Run Filename dotnet40 RegAsm exe Parameters my dll Worki
  • pyspark 与 scala 中的 FPgrowth 计算关联

    Using http spark apache org docs 1 6 1 mllib frequent pattern mining html Python代码 from pyspark mllib fpm import FPGrowt
  • 如何在php中逐行读取

    当我尝试将每一行插入 Oracle 数据库时 我收到一条错误 指出数字无效 但如果文件中只有一行 则可以正常工作 file fopen file text r while there is another line to read in t
  • 如何使 document.querySelector 在 IE6 中工作

    我在一个网站上工作 我得到了一个在 Internet Explorer 6 中不起作用的 JavaScript 函数 我知道 document querySelector selector 只工作在 Internet Explorer 8
  • PHP 的 DOM 和 SimpleXML 扩展之间有什么区别?

    我无法理解为什么 PHP 中需要 2 个 XML 解析器 有人能解释一下这两者之间的区别吗 简而言之 简单XML 适用于简单的 XML 和 或简单的用例 与节点一起使用的 API 有限 例如 无法对接口进行太多编程 所有节点都是同类 元素节
  • Pandas 重叠重采样

    我想对我的时间索引 DataFrame 进行一些重叠的重新采样 例如 gt gt gt df data date 2018 03 09 12 00 00 1 2018 03 09 12 00 01 1 2018 03 09 12 00 02