在 pandas DataFrame/Series 中快速选择时间间隔

2023-11-23

我的问题是我想过滤 DataFrame 以仅包含间隔内的时间[开始、结束)。如果不关心这一天,我只想过滤每天的开始和结束时间。我有一个解决方案,但速度很慢。所以我的问题是是否有一种更快的方法来进行基于时间的过滤。

Example

import pandas as pd
import time


index=pd.date_range(start='2012-11-05 01:00:00', end='2012-11-05 23:00:00', freq='1S').tz_localize('UTC')
df=pd.DataFrame(range(len(index)), index=index, columns=['Number'])

# select from 1 to 2 am, include day
now=time.time()
df2=df.ix['2012-11-05 01:00:00':'2012-11-05 02:00:00']
print 'Took %s seconds' %(time.time()-now) #0.0368609428406

# select from 1 to 2 am, for every day
now=time.time()
selector=(df.index.hour>=1) & (df.index.hour<2)
df3=df[selector]
print 'Took %s seconds' %(time.time()-now) #Took  0.0699911117554

正如你所看到的,如果我删除这一天(第二种情况),它几乎需要两倍的时间。如果我有多个不同的日子,例如 11 月 5 日到 7 日,计算时间会迅速增加:

index=pd.date_range(start='2012-11-05 01:00:00', end='2012-11-07 23:00:00', freq='1S').tz_localize('UTC')

那么,总结一下,是否有一种更快的方法可以按一天中的时间、跨多天进行过滤?

Thx


你需要between_time method.

In [14]: %timeit df.between_time(start_time='01:00', end_time='02:00')
100 loops, best of 3: 10.2 ms per loop

In [15]: %timeit selector=(df.index.hour>=1) & (df.index.hour<2); df[selector]
100 loops, best of 3: 18.2 ms per loop

我以11月5日至7日为索引完成了这些测试。

文档



Definition: df.between_time(self, start_time, end_time, include_start=True, include_end=True)
Docstring:
Select values between particular times of the day (e.g., 9:00-9:30 AM)

Parameters
----------
start_time : datetime.time or string
end_time : datetime.time or string
include_start : boolean, default True
include_end : boolean, default True

Returns
-------
values_between_time : type of caller

  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 pandas DataFrame/Series 中快速选择时间间隔 的相关文章

  • Python 类型提示 Dict 语法错误 可变默认值是不允许的。使用“默认工厂”

    我不知道为什么解释器会抱怨这个类型的字典 对于这两个实例 我得到一个 不允许可变默认值 使用默认工厂 语法错误 我使用的是 python 3 7 3 from dataclasses import dataclass from typing
  • 如何在 __init__ 中使用await设置类属性

    我如何定义一个类await在构造函数或类体中 例如我想要的 import asyncio some code class Foo object async def init self settings self settings setti
  • pandas DataFrame.join 的运行时间是多少(大“O”顺序)?

    这个问题更具概念性 理论性 与非常大的数据集的运行时间有关 所以我很抱歉没有一个最小的例子来展示 我有一堆来自两个不同传感器的数据帧 我需要最终将它们连接成两个very来自两个不同传感器的大数据帧 df snsr1 and df snsr2
  • Django Rest Framework 是否有第三方应用程序来自动生成 swagger.yaml 文件?

    我有大量的 API 端点编写在django rest framework并且不断增加和更新 如何创建和维护最新的 API 文档 我当前的版本是 Create swagger yaml文件并以某种方式在每次端点更改时自动生成 然后使用此文件作
  • python multiprocessing 设置生成进程等待

    是否可以生成一些进程并将生成进程设置为等待生成的进程完成 下面是我用过的一个例子 import multiprocessing import time import sys def daemon p multiprocessing curr
  • Python 3d 绘图设置固定色阶

    我正在尝试绘制两个 3d 数组 第一个数组的 z 值在范围内 0 15 0 15 第二个来自 0 001 0 001 当我绘图时 色标自动遵循数据范围 如何设置自定义比例 我不想看到 0 001 的浅色 而应该看到 0 15 的浅色 如何修
  • 矩形函数的数值傅里叶变换

    本文的目的是通过一个众所周知的分析傅里叶变换示例来正确理解 Python 或 Matlab 上的数值傅里叶变换 为此 我选择矩形函数 这里报告了它的解析表达式及其傅立叶变换https en wikipedia org wiki Rectan
  • Python 内置的 super() 是否违反了 DRY?

    显然这是有原因的 但我没有足够的经验来认识到这一点 这是Python中给出的例子docs http docs python org 2 library functions html super class C B def method se
  • 如何将特定范围内的标量添加到 numpy 数组?

    有没有一种更简单 更节省内存的方法可以单独在 numpy 中执行以下操作 import numpy as np ar np array a l r ar c a a 0 l ar tolist a r 它可能看起来很原始 但它涉及获取给定数
  • 从 Powershell 脚本安装 Python

    当以管理员身份从 PowerShell 命令行运行以下命令时 可以在 Windows 11 上成功安装 Python c temp python 3 11 4 amd64 exe quiet InstallAllUsers 0 Instal
  • Java 和 Python 可以在同一个应用程序中共存吗?

    我需要一个 Java 实例直接从 Python 实例数据存储中获取数据 我不知道这是否可能 数据存储是否透明 唯一 或者每个实例 如果它们确实可以共存 都有其单独的数据存储 总结一下 Java 应用程序如何从 Python 应用程序的数据存
  • 嵌套作用域和 Lambda

    def funct x 4 action lambda n x n return action x funct print x 2 prints 16 我不太明白为什么2会自动分配给n n是返回的匿名函数的参数funct 完全等价的定义fu
  • Python - 如何确定解析的 XML 元素的层次结构级别?

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

    我刚刚开始从 Matlab 迁移到 Python 2 7 在读取 mat 文件时遇到一些问题 时间信息以 Matlab 的日期数字格式存储 对于那些不熟悉它的人 日期序列号将日历日期表示为自固定基准日期以来已经过去的天数 在 MATLAB
  • 找到一个数字所属的一组范围

    我有一个 200k 行的数字范围列表 例如开始位置 停止位置 该列表包括除了非重叠的重叠之外的所有类型的重叠 列表看起来像这样 3 5 10 30 15 25 5 15 25 35 我需要找到给定数字所属的范围 并对 100k 个数字重复该
  • 为什么 csv.DictReader 给我一个无属性错误?

    我的 CSV 文件是 200 Service 我放入解释器的代码是 snav csv DictReader open screennavigation csv delimiter print snav fieldnames 200 for
  • 制作一份 Python 文档的 PDF 文件

    Python 官方网站提供 PDF 文档下载 但它们是按章节分隔的 我下载了源代码并构建了 PDF 文档 这些文档也是单独的 PDF 我怎么能够从源代码中的 Makefile 构建一个 PDF 文件 我认为这样阅读起来会更方便 如果连接单独
  • 如何使用 Boto3 启动具有 IAM 角色的 EC2 实例?

    我无法弄清楚如何使用指定的 IAM 角色在 Boto3 中启动 EC2 实例 以下是迄今为止我如何成功创建实例的一些示例代码 import boto3 ec2 boto3 resource ec2 region name us west 2
  • 等待子进程使用 os.system

    我用了很多os system在 for 循环内调用创建后台进程 如何等待所有后台进程结束 os wait告诉我没有子进程 ps 我使用的是Solaris 这是我的代码 usr bin python import subprocess imp
  • 如何在 Flask 中的视图函数/会话之间传递复杂对象

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

随机推荐

  • 从文件加载 RSA 私钥时出现 InvalidKeySpecException

    我正在尝试从 java 中的文件加载私钥 该密钥由 ssh agent 生成 我实际上正在使用下面的代码 public PrivateKey getPrivateKeyFromFile try String privateKey readF
  • 角度拦截器和 CORS

    我正在尝试编写一个拦截器 以使用 Angular 向所有 HTTP 请求添加令牌 我大致使用这里给出的食谱 https thinkster io interceptors 所以代码使用 http 模块工厂和tokenInterceptor
  • 使用 UNION 时,SQL 查询是否保证以原子方式执行?

    我正在发出一个由使用 UNION 分组的多个 SELECT 组成的单个 SQL 查询 SELECT FROM employee LEFT JOIN department ON employee DepartmentID department
  • 是否可以在 Visual Studio 调试会话之间保留 Cookie

    我有一个身份验证 cookie 当我在本地环境中点击登录屏幕后 该 cookie 就会被设置 该 cookie 已被设置为持久性的 并被赋予未来 7 天的超时期限 当我结束调试会话并在另一个构建后开始调试时 cookie 不存在 每个浏览器
  • jquery 获取加载时 iframe 内容的高度

    我有一个帮助页面 help php 我正在 main php 的 iframe 中加载该页面 在 iframe 中加载此页面后 如何获取该页面的高度 我问这个是因为我无法将 iframe 的高度设置为 100 或自动 这就是为什么我认为我需
  • C++ 中的除法[重复]

    这个问题在这里已经有答案了 我是 C 新手 我尝试了这个简单的代码 include
  • 如何将数组作为参数传递给 vararg 函数?

    我有一些代码看起来像这样 uint8 t activities 8 uint8 t numActivities 0 activities numActivities someValue activities numActivities so
  • 将 Dropbox 集成到 Android 应用程序中,但没有登录弹出窗口

    我想在我的应用程序中使用保管箱 我开发了一个用于上传和下载文件的示例应用程序 它要求身份验证 但我不想打开登录弹出窗口 其他用户是否可以使用默认帐户 单个帐户 登录详细信息访问保管箱 因此任何用户都可以直接使用 dropbox 而无需弹出登
  • 可以在 Visual Studio 中使用 WSDL 自动生成代码

    您好 我想使用测试以下功能 http msrmaps com terraservice2 asmx op ConvertLonLatPtToNearestPlace 是否有一些更快的方法可以使用 Visual Studio 2010 对其进
  • 部分匹配行名时发出警告

    我刚刚发现了数据框中行名称部分匹配导致的错误 有没有办法禁用部分匹配 运算符或在使用全局匹配时生成警告 我知道这是可能的exact TRUE为了 运算符或与options warnPartialMatchDollar TRUE for 索引
  • 派生类的指针可以类型转换为其基类的指针吗?

    new 返回的派生类的指针可以进行 类型转换为其基类的指针 这是对还是错 我知道dynamic cast可以用来消除缺点 一般来说 如何将派生类的指针转换为其基类的指针 是的 从指向派生类的指针到指向基类的指针的转换是隐式的 因此 以下内容
  • JUnit - 如何测试具有不同值的方法?

    我有一个方法并希望用不同的值来测试它 我的问题是 如何编写 JUnit 测试来测试具有不同值的相同方法 您可以查看参数化测试 例如example 你也可以使用理论这在很多情况下更方便
  • Android 中使用 Kotlin 的 HTTP 请求

    我想使用 POST 方法进行登录验证并使用 GET 方法获取一些信息 我已经有了我之前项目的 URL 服务器用户名和密码 对于安卓系统 Volley是一个很好的起点 对于所有平台 您可能还想查看ktor客户或http4k这都是很好的图书馆
  • React Admin 显示非常混乱

    我的 RA 项目在本地部署时渲染良好 但是 当我将构建目录复制到 S3 存储桶进行部署时 它渲染得一团糟 有时它会起作用 但大多数时候它会呈现如下图所示 它在使用 AOR 的两种环境中都可以正常工作 环境 React admin版本 2 0
  • 使用 JavaScript 更改浏览器中的 URL,而不加载新页面

    我怎样才能有一个JavaScript可能会对当前页面产生一些影响 但也会更改浏览器中的 URL 的操作 因此如果用户点击重新加载或添加书签 则会使用新的 URL 如果后退按钮能够重新加载原始 URL 那就太好了 我正在尝试在 URL 中记录
  • Pylint 忽略特定名称[重复]

    这个问题在这里已经有答案了 我有 pylint 问题 即有时它会对某些变量 类 模块等重复相同的消息 但我找不到解决方法 我想说的是 pylint 不要使用某些选项或 rcfile 指令检查 此模块 模块 ZZZ 中的 消息 XXX 任何消
  • 有关如何将 SwipeRefreshLayout 与 ListView 结合使用的简单示例

    有人有关于如何将 SwipeRefreshLayout 与 ListView 一起使用的简单示例吗 这是我的情况 我有一个类 SynchDogs 从服务器提取数据 所以该类作为我的适配器的源 我想使用 SwipeRefreshLayout
  • -viewDidLoad 未在子类 UIViewController 中调用

    请耐心等待 我还在学习 Cocoa Touch 其他 viewDidLoad 未被调用问题与我的问题无关 我进行了搜索 I have FooViewController a UIViewController子类 FooViewControl
  • Web API 和 MVC 异常处理

    我们目前正在将 Web 表单系统重新开发为 Web API 和 MVC 这对我们来说是新技术 到目前为止 一切似乎都很好 但是我们正在努力将错误从 Web API 应用程序发送回 MVC 应用程序 我们意识到我们需要捕获任何异常并将这些异常
  • 在 pandas DataFrame/Series 中快速选择时间间隔

    我的问题是我想过滤 DataFrame 以仅包含间隔内的时间 开始 结束 如果不关心这一天 我只想过滤每天的开始和结束时间 我有一个解决方案 但速度很慢 所以我的问题是是否有一种更快的方法来进行基于时间的过滤 Example import