最近遇上两个需求:
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用处无穷!