首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >python pandas datetime.time - datetime.time

python pandas datetime.time - datetime.time
EN

Stack Overflow用户
提问于 2014-02-28 11:30:45
回答 3查看 7.1K关注 0票数 7

我有一个数据帧,其中包含两列datetime.time项。就像这样

代码语言:javascript
运行
AI代码解释
复制
   col1                 col2
02:10:00.008209    02:08:38.053145
02:10:00.567054    02:08:38.053145
02:10:00.609842    02:08:38.053145
02:10:00.728153    02:08:38.053145
02:10:02.394408    02:08:38.053145

如何生成col1和col2的区别所在的col3?(最好以微秒为单位)?

我到处找,但我在这里找不到解决方案。有人知道吗?

谢谢!

EN

回答 3

Stack Overflow用户

发布于 2014-02-28 12:41:43

不要使用datetime.time,使用timedelta

代码语言:javascript
运行
AI代码解释
复制
import pandas as pd
import io
data = """col1                 col2
02:10:00.008209    02:08:38.053145
02:10:00.567054    02:08:38.053145
02:10:00.609842    02:08:38.053145
02:10:00.728153    02:08:38.053145
02:10:02.394408    02:08:38.053145"""
df = pd.read_table(io.BytesIO(data), delim_whitespace=True)
df2 = df.apply(pd.to_timedelta)
diff = df2.col1 - df2.col2

diff.astype("i8")/1e9

输出以秒为单位不同:

代码语言:javascript
运行
AI代码解释
复制
0    81.955064
1    82.513909
2    82.556697
3    82.675008
4    84.341263
dtype: float64

要将时间数据帧转换为时间增量数据帧,请执行以下操作:

代码语言:javascript
运行
AI代码解释
复制
df.applymap(time.isoformat).apply(pd.to_timedelta)
票数 3
EN

Stack Overflow用户

发布于 2014-02-28 11:59:49

您确定需要datetime.time对象的DataFrame吗?几乎没有什么操作可以方便地对这些人执行,尤其是在包装在DataFrame中时。

让每一列存储一个表示总微秒数的int可能更好。

您可以将df转换为存储微秒的DataFrame,如下所示:

代码语言:javascript
运行
AI代码解释
复制
In [71]: df2 = df.applymap(lambda x: ((x.hour*60+x.minute)*60+x.second)*10**6+x.microsecond)

In [72]: df2
Out[72]: 
         col1        col2
0  7800008209  7718053145
1  7800567054  7718053145

从那里,很容易得到你想要的结果:

代码语言:javascript
运行
AI代码解释
复制
In [73]: df2['col1']-df2['col2']
Out[73]: 
0    81955064
1    82513909
dtype: int64
票数 2
EN

Stack Overflow用户

发布于 2014-02-28 12:41:57

pandasdatetime对象转换为np.datetime64对象,后者的区别在于np.timedelta64对象。

考虑一下这个

代码语言:javascript
运行
AI代码解释
复制
In [30]: df
Out[30]: 
                       0                          1
0 2014-02-28 13:30:19.926778 2014-02-28 13:30:47.178474
1 2014-02-28 13:30:29.814575 2014-02-28 13:30:51.183349

我可以通过以下方式考虑逐列差异

代码语言:javascript
运行
AI代码解释
复制
 df[0] - df[1]


 Out[31]: 
 0   -00:00:27.251696
 1   -00:00:21.368774
 dtype: timedelta64[ns]

因此,我可以应用timedelta64转换。几微秒

代码语言:javascript
运行
AI代码解释
复制
(df[0] - df[1]).apply(lambda x : x.astype('timedelta64[us]')) #no actual difference when displayed

或作为整数的微秒

代码语言:javascript
运行
AI代码解释
复制
(df[0] - df[1]).apply(lambda x : x.astype('timedelta64[us]').astype('int'))

 0   -27251696000
 1   -21368774000
 dtype: int64

EDIT:根据@Jeff的建议,最后的表达式可以缩短为

代码语言:javascript
运行
AI代码解释
复制
(df[0] - df[1]).astype('timedelta64[us]')

代码语言:javascript
运行
AI代码解释
复制
(df[0] - df[1]).astype('timedelta64[us]').astype('int')

为熊猫>= .13。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22093962

复制
相关文章
SpringBoot配置使用H2数据库
自动去创建数据库,借用Spring Data Jpa的注解,启动时自动创建内存数据库
是小张啊喂
2021/08/10
4.1K0
SpringBoot配置使用H2数据库
Hibernate H2 数据库连接配置 URL 解读
H2 是我们常使用的一个内存数据库,通常这个数据库能够帮助我们在测试的时候进行逻辑测试。
HoneyMoose
2021/11/23
2.4K0
java h2 数据库_Java H2数据库
url: jdbc:h2:file:./src/main/resources/data.sql
全栈程序员站长
2022/11/04
7720
java h2 数据库_Java H2数据库
H2 数据库
H2 是标准 SQL 的关系型数据库,由 java 编写,整个 H2 是一个 jar 包(大约 2.5MB),其开源且使用 JDBC API 进行调用。其主要特性如下:
晚上没宵夜
2022/09/07
1.3K0
H2 数据库
最近做演示项目的时候需要一个数据库,但不想安装。于是查看了embedded datasource : h2 h2: 依赖: <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> </dependency> h2: 驱动名称: org.h2.Driver h2: jdbc url: 内存模式: jdbc:h2:mem:test embedded: jdbc:h2:file:./db/springbo
Ryan-Miao
2018/03/13
9850
H2数据库教程_h2数据库编辑数据库
H2控制台应用程序允许您使用浏览器访问数据库。这可以是H2数据库,也可以是支持JDBC API的其他数据库。
全栈程序员站长
2022/11/04
5.9K0
H2数据库教程_h2数据库编辑数据库
h2数据库的使用_h2数据库查看数据
h2  |—bin  | |—h2-1.1.116.jar  //H2数据库的jar包(驱动也在里面)  | |—h2.bat  //Windows控制台启动脚本  | |—h2.sh  //Linux控制台启动脚本  | |—h2w.bat  //Windows控制台启动脚本(不带黑屏窗口)  |—docs  //H2数据库的帮助文档(内有H2数据库的使用手册)  |—service  //通过wrapper包装成服务。  |—src  //H2数据库的源代码  |—build.bat  //windows构建脚本  |—build.sh  //linux构建脚本
全栈程序员站长
2022/11/07
1K0
h2数据库使用(h2数据库生成的文件)
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/128765.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/28
9120
java h2 数据库_H2数据库介绍「建议收藏」
1、H2数据库是一个开源的关系型数据库。H2是一个嵌入式数据库引擎,采用java语言编写,不受
全栈程序员站长
2022/11/04
1K0
H2数据库入门_H2数据库越来越大
  1、H2是一个用Java开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中。   H2最大的用途在于可以同应用程序打包在一起发布,这样可以非常方便地存储少量结构化数据。   它的另一个用途是用于单元测试。启动速度快,而且可以关闭持久化功能,每一个用例执行完随即还原到初始状态。   H2的第三个用处是作为缓存,作为NoSQL的一个补充。当某些场景下数据模型必须为关系型,可以拿它当Memcached使,作为后端MySQL/Oracle的一个缓冲层,缓存一些不经常变化但需要频繁访问的数据,比如字典表、权限表。不过这样系统架构就会比较复杂了。   2、H2的产品优势:   纯Java编写,不受平台的限制;   只有一个jar文件,适合作为嵌入式数据库使用;   h2提供了一个十分方便的web控制台用于操作和管理数据库内容;   功能完整,支持标准SQL和JDBC。麻雀虽小五脏俱全;   支持内嵌模式、服务器模式和集群。
全栈程序员站长
2022/11/04
1.2K0
java h2数据库_JAVA 项目中使用 H2 数据库
H2数据库是可以嵌入到JAVA项目中的,因为只需要导入一个jar包即可,所以非常的方便。
全栈程序员站长
2022/09/27
6670
H2 数据库使用简介
H2 是一个用 Java 开发的嵌入式数据库,它本身只是一个类库,即只有一个 jar 文件,可以直接嵌入到应用项目中。H2 主要有如下三个用途:
全栈程序员站长
2022/07/23
4.7K0
H2 数据库使用简介
h2数据库使用_数据库教程
H2是一个采用java语言编写的嵌入式数据库引擎,只是一个类库(即只有一个 jar 文件),可以直接嵌入到应用项目中,不受平台的限制
全栈程序员站长
2022/11/07
3.8K0
h2数据库使用_数据库教程
H2 数据库简介_polardb 数据库
H2提供了控制台工具可以对数据库进行管理和数据的插入等动作,该控制台通过浏览器连接。 启动控制台的方式有多种, 如果使用的是安装版的H2, 可以到安装目录中点击H2.bat 文件启动或是在程序菜单中点击H2 Console (Command Line) , 但是大部分使用H2都是免安装的方式。 这里以Maven 导入的方式为例, Cmd 命令行进入本地库对应的H2目录, 比如: D:\install\maven3.6\repository\com\h2database\h2\1.4.200, 执行如下命令:
全栈程序员站长
2022/11/04
8720
H2 数据库简介_polardb 数据库
springboot使用h2数据库做单元测试_h2数据库对接SQL
h2数据库十分适合作为嵌入式数据库使用,其它的数据库大部分都需要安装独立的客户端和服务器端。所谓嵌入式数据库,就是直接在项目中引入h2的jar包,通过java代码启动h2的服务,项目即可使用h2的数据库功能,而不需要额外的安装h2服务器很方便,以下是引入h2相关的配置
全栈程序员站长
2022/11/07
1.3K0
Java连接H2数据库
h2数据库的连接和MySQL连接一样,都可以用jdbc去获取,只需要修改驱动类、URL和用户名密码
静谧星空TEL
2021/04/27
1.8K0
Java连接H2数据库
Spring Boot 和 Hibernate 的 H2 数据库配置来进行启动测试
如果你的 Spring 项目中没有添加 H2 的依赖,你需要在 Maven 中添加。
HoneyMoose
2020/10/23
1.7K0
Spring Boot 和 Hibernate 的 H2 数据库配置来进行启动测试
H2 数据库中文乱码处理
H2 数据库入门和基本使用:https://blog.csdn.net/qq262593421/article/details/108651119
静谧星空TEL
2021/04/27
1.5K0
H2数据库集群_数据库集群搭建
常用的开源数据库:H2,Derby,HSQLDB,MySQL,PostgreSQL。其中H2,HSQLDB类似,十分适合作为嵌入式数据库使用,其它的数据库大部分都需要安装独立的客户端和服务器端。 H2的优势: 1、h2采用纯Java编写,因此不受平台的限制。 2、h2只有一个jar文件,十分适合作为嵌入式数据库试用。 3、性能和功能的优势 H2比HSQLDB的最大的优势就是h2提供了一个十分方便的web控制台用于操作和管理数据库内容,这点比起HSQLDB的swing和awt控制台实在好用多了。 H2和各数据库特征比较
全栈程序员站长
2022/11/04
2.2K0
H2数据库集群_数据库集群搭建
spring使用内存数据库(h2)
内存数据库,就是不需要去安装类似于mysql、oracle等这些数据库,而是通过程序运行的时候将sql执行将数据读取到内存中,程序结束后从内存中移除,减少因为安装sql或者一系类配置。
逍遥壮士
2020/11/09
1.2K0
spring使用内存数据库(h2)

相似问题

flowable怎么配置达梦数据库?

0280

配置数据库 mysql -uroot --password='***' 报错?

1358

H2和HSQLDB哪个更好?

2288

Moodle数据库连接配置信息在哪里?

1250

Discuz数据库连接配置信息在哪里?

1271
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档