pandas 时间格式转换的实现
本文详解在 pandas 中处理时间数据的两种核心场景:将未解析的时间字符串转换为时间戳,以及将已解析的日期对象转换为时间戳。通过演示 strptime、mktime 和 strftime 函数的组合使用,帮助开发者掌握时间元组在转换中的关键作用,适用于数据清洗与特征工程。
OUTLINE
时间字符串与时间戳的相互转换
常见的时间字符串与 timestamp 之间的转换
日期与 timestamp 之间的转换
常见的时间字符串与 timestamp 之间的转换
此处所指的字符串并非标准日期类型,而是指在读取数据时,若未对日期字段进行即时解析,其仍保持为字符串状态。在此情况下,需探讨如何将此类字符串转换为时间戳。
① 时间字符串转化成时间戳将时间字符串转化成时间戳分为两步:
第一步:将时间字符串转换成时间元组
第二步:将时间元组转换成时间戳类型
import time
data['timestamp'] = data['OCC_TIM'].apply(lambda x:time.mktime(time.strptime(x,'%Y-%m-%d %H:%M:%S')))
其中,strptime 函数是将字符串按照后面的格式转换成时间元组类型;mktime 函数则是将时间元组转换成时间戳。记住这两个常用函数。
② 将时间戳转换成可读字符串
第一步:用 localtime 将时间戳转换成 local_time, 时间元组
第二步:用 strftime 将 local_time 转换成可读字符串
timestamp = 1.521708e+09
time_local = time.localtime(timestamp)
time_local
# 输出:
# time.struct_time(tm_year=2018, tm_mon=3, tm_mday=22, tm_hour=16, tm_min=40, tm_sec=0, tm_wday=3, tm_yday=81, tm_isdst=0)
time.strftime('%Y/%m/%d %H:%M:%S',time_local)
# 输出:
# '2018/03/22 16:40:00'
日期对象与时间戳的转换方法
日期与 timestamp 之间的转换
但是如果,你在读取数据的时候已经用了 parse_dates 这个参数,将可读的字符串换成了日期格式。那如何将日期转换成 timestamp?
那么我们应该想的是如何将日期转换成时间元组!
import time
data['timestamp'] = data['OCC_TIM'].apply(lambda x:time.mktime(x.timetuple())) # 所以最重要的是 日期.timetuple() 这个用法 通过它将日期转换成时间元组
data.head(10)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













