pandas:关于时间筛选的一点坑

最近遇上两个需求:
1.通过仅有时分秒的数据项筛选时间(datatime)
2.计算两个仅有时分秒的数据项之间的时间差的总秒数(timeoffset)
先亮结果
在这里插入图片描述

经过:起初我看到这个时间格式,错以为可以直接用于比较,但实际上这样的比较计算机是识别不出来的,必须要加上年月日(我怀疑时间比较需要将时间转换成时间戳格式,所以才需要年月日,这一点有待日后验证)
因此第一个需求

import pandas as pd
date = '20200302'
data = old_data[pd.to_datetime(str(date)+" "+old_data['UpdateTime'].astype('str')) > \
                            pd.to_datetime(str(date)+" 09:14:59")]

即在str类型时间的基础上,加上str类型的年月日,将这个拼接成的字符串传入to_datetime函数中,转换换成时间格式,即可进行下一步比较。
ps:
1.如果不加str年月日的话也可将时分秒传入to_datetime函数,不过生成时间的年月日是系统时间。
2.to_datetime函数目前已知可转换str以及时间戳类型数据为datetime格式,更多的功能待日后探索

第二个需求
和上一个需求类型,只不过编程两个datetime类型相减之后,调用高级接口dt类中的方法total_seconds即可将时间差转化为秒级别

data['timeoffset'] = (pd.to_datetime(str(date)+" "+data['datatime'].astype('str')) -\
                                      pd.to_datetime(str(date)+" 08:00:00")).dt.total_seconds().astype(int)

ps:pandas中的三个高级接口dt、str、cat用处无穷!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值