022—pandas 根据时间段转换为各小时的秒数

news2024/10/23 2:54:01

前言

本例中,有一些时间段数据,需要将这些时间段里的时间以小时为分组,将24个小时段中每个小时所占用的秒数计算出来。

需求:

以第一条数据为例,它所在两个小时,7点段占用24分钟15秒,8点段54分钟41秒。其他数据同理进行解析计算,最后按小时段合并,最终计算出各个小时段的用时。

思路:

  • 用pd.read_clipboard读取数据df,并将列解析为时间类型

  • 编写一个函数用于将时段解析为不同小时的秒数:

  • 用pd.period_range将开始时间和结束时间构建一个周期对象,单位为秒

  • 对周期数据用秒做groupby分组

  • 用分组的items方法取出key和value,key是小时,value时长

  • 用字典推导式将各个小时拼为一个字典,key是小时,value取秒
    df按行调用上边的函数,每行数据会自成一个上述函数组成的字典
    最后将所有字典按key合并,相加得到总的秒数,最终得到结果
    还可以对其进行可视化分析

二、使用步骤

1.引入库

代码如下(示例):

import pandas as pd

2.读入数据

代码如下(示例):

'''
start_time,end_time
2/2/2021 07:24:15,2/2/2021 08:54:41
2/3/2021 11:00:05,2/3/2021 15:10:37
2/1/2021 10:40:34,2/1/2021 14:43:50
2/4/2021 10:37:37,2/4/2021 11:19:17
2/3/2021 20:37:51,2/4/2021 02:37:52
2/3/2021 21:37:52,2/3/2021 22:08:39
'''
# 读取剪贴板,用逗号分隔,解析两个字段为时间类型
df = pd.read_clipboard(sep=',', parse_dates=[0,1])#parse_dates(动词,主动解析格式),尝试解析0,1列为时间格式
# 查看类型
df.dtypes

在这里插入图片描述

# 函数,将开始时间和结束时间解析为每个小时的时长(秒)
def duration_by_hour(start, end):
    p = pd.period_range(pd.Period(start, freq='s'), pd.Period(end, freq='s'))
    pr = {h:pd.to_timedelta(t[-1]-t[0]).seconds for h,t in p.groupby(p.hour).items()}
    return pr

# 将每行数据应用函数,解析出每个小时对应的秒数
s = df.apply(lambda r: duration_by_hour(r.start_time, r.end_time), axis=1)
s

在这里插入图片描述

# 按小时合并秒数
final = {}
for d in s.to_list():
    for k in d.keys():
        final[k] = final.get(k,0) + d[k]
final

在这里插入图片描述

# 可视化,单位转换为分钟
(pd.Series(final).sort_index()/60).plot.bar()

在这里插入图片描述

总结

以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1498460.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【一起学习Arcade】(5):属性规则实例_计算规则

属性规则可改善地理数据库数据集的编辑体验并提高数据完整性。 这些规则均为用户定义的规则,可用于自动填充属性、在编辑操作期间限制无效编辑,以及对现有要素执行质量保证检查。 属性规则分为3类:计算、约束和验证。 这一篇介绍计算规则&…

光谱整形1

华为张德江:下一代光传送网将走向400G80波WDM系统_通信世界网 (cww.net.cn) 张德江指出,400G WDM系统具有三大基本特征:支持400G80波,单纤32T超大容量,传输距离与100G相当;支持32维以上的光交叉&#xff1…

为什么不从独立服务器中转向云或其他方案呢?

传统的专用服务器,如香港服务器租赁、重庆服务器租赁等,是最强大、最稳定的业务托管类型之一。您将获得比任何其他托管计划更多的管理权限和卓越的性能,并且您可以控制整个服务器上的几乎所有内容。 当然,专用服务器也是在线业务…

昏暗场景增强-低照度增强-弱光增强(附代码)

引言 随着现代科技的发展,图像采集设备已经渗透到生活的方方面面,然而在昏暗场景、低照度或弱光条件下,图像的质量往往受到严重影响,表现为亮度不足、对比度低下、色彩失真以及细节丢失等问题。这类图像对于人眼识别和计算机视觉…

大数据冷热分离方案

数据冷热分离方案 1、背景 ​ 随着业务的发展,在线表中的数据会逐渐增加。常规业务都有冷热数据现象明显的特性(需要访问的都是近期产生的热数据;时间久远的冷数据出于备份、备案溯源等诉求会进行在线保留)。在业务表数据 量可控…

自动化测试之web自动化(Selenium)

🔥 交流讨论:欢迎加入我们一起学习! 🔥 资源分享:耗时200小时精选的「软件测试」资料包 🔥 教程推荐:火遍全网的《软件测试》教程 📢欢迎点赞 👍 收藏 ⭐留言 &#x1…

基础小白快速入门并行计算------>我们为什么要学习并行计算

什么是并行计算? 随着计算机的不断发展,我们处理的数据不断变多,需要更大得到处理能力、我们希望计算机有着更大更强壮的计算能力,由于cpu的运行能力有限,我们便想到了将多个cpu进行串联计算问题,这也就是我…

第五十二回 戴宗二取公孙胜 李逵独劈罗真人-飞桨AI框架安装和使用示例

吴用说只有公孙胜可以破法术,于是宋江请戴宗和李逵去蓟州。两人听说公孙胜的师傅罗真人在九宫县二仙山讲经,于是到了二仙山,并在山下找到了公孙胜的家。 两人请公孙胜去帮助打高唐州,公孙胜说听师傅的。罗真人说出家人不管闲事&a…

接口测试,后端接口还没开发完,如何测?解决看这一篇就够了......

前言 在测试的时候经常会碰到后端开发工程师的接口还没有开发完成,但是测试任务已经分配过来。没有接口怎么测试呢? 测试人员可以通过 mock server 自己去造一个接口来访问。mock server 可用于模拟真实的接口。收到请求时,它会根据配置返回…

【24春招/简历】如果技术和学历不行,如何包装自己在春招中占得先机?突出你的亮点!

面试讲什么 学历: 行情 要美化(吹牛) 面试很好 技术能力 让面试官知道你会哪些技术,尽量细节 “熟悉spring” > ioc流程,Bean的生命周期,循环依赖,常见注解 熟悉redis > 缓存穿透&…

2024年AI辅助研发:科技遇上创意,无限可能的绽放

码到三十五 : 个人主页 心中有诗画,指尖舞代码,目光览世界,步履越千山,人间尽值得 ! 随着人工智能技术的持续突破与深度融合,2024年AI辅助研发正以前所未有的速度和规模,引领着科技界和工业界…

【开源】JAVA+Vue.js实现创意工坊双创管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 管理员端2.2 Web 端2.3 移动端 三、系统展示四、核心代码4.1 查询项目4.2 移动端新增团队4.3 查询讲座4.4 讲座收藏4.5 小程序登录 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的创意工坊双创管理…

个人项目介绍4:三维园区篇

个人项目介绍: 地图铁路线路篇 地球卫星篇 火车站篇 三维园区篇 项目需求: 1.按比例全景显示三维园区 2.精确显示园区内设备设施 3.实时显示设备报警信息 4.显示园区内摄像监控设备,并可点击显示监控视频流 5.显示园区内的重大危险源和风险分布 …

Ansible 基础入门

2)Ansible 介绍 Ansible 基本概念 Ansible 是一种自动化运维工具,基于 Paramiko 开发的,并且基于模块化工作,Ansible 是一种集成 IT 系统的配置管理、应用部署、执行特定任务的开源平台,它是基于 Python 语言&#xf…

tomcat搭建个人博客 实现动静分离

jar包相关 .war:WebApp打包,类zip格式文件,通常包括一个应用的所有资源,比如jsp,html,配置文件等 .jar:EJB类文件的打包压缩类zip格式文件,,包括很多的class文件, 网景公司发明 .rar:资源适配器类打包文件,目前已不常…

6个维度分析实时渲染和Webgl技术异同

在日常交流中,对Webgl技术熟悉的合作伙伴,在初次了解实时渲染技术时,都会问二者之间的异同。目前很多要求B/S架构的项目,很多在用webgl技术路线,而且这个方案在行业里比较普,业主方对这个也比较熟悉&#x…

T01类加载机制

类加载机制 类加载运行全过程 当我们用java命令运行某个类的main函数启动程序时,首先需要通过类加载器把主类加载到JVM public class Math {public static final int initData 666;public static User user new User();public int compute() {int a 1;int b …

泛型 --java学习笔记

什么是泛型 定义类、接口、方法时&#xff0c;同时声明了一个或者多个类型变量&#xff08;如&#xff1a;<E>&#xff09;&#xff0c;称为泛型类、泛型接口&#xff0c;泛型方法、它们统称为泛型 可以理解为扑克牌中的癞子&#xff0c;给它什么类型它就是什么类型 如…

1.BOM-获取元素(获取元素、修改属性)

web Api基本认知 作用&#xff1a;通过JS去操作html页面和浏览器(实现浏览器中的某些功能) 分类&#xff1a; DOM(网页)&#xff1a;Document Object Model(文档对象模型) BOM(浏览器)&#xff1a;Borwser Object Model(浏览器对象模型) DOM DOM树 将网页中标签的关系以树状…

Java定时调度:Timer类和TimerTask类

Java提供了多种方式来执行定时任务&#xff0c;其中使用Timer类和TimerTask类是一种简单而有效的方法。这篇教程将介绍如何使用Java的Timer类和TimerTask类来实现定时调度。 1. Timer类 Timer类用于安排指定的任务按指定的时间执行。它可以执行一次性任务&#xff0c;也可以按…