将python时间段(Timedelta)转化为int或float数值形式的两种方法

Python037

将python时间段(Timedelta)转化为int或float数值形式的两种方法,第1张

        最近做的一个案例要将时间数据进行聚类分析,所以需要将Timedelta转化为int或float数值形式。

时间数据如下图所示:

方法(一):

通过pandas处理数据

结果如下图

方法(二):

通过numpy处理数据

结果如下图

总结:方法(一)pandas是直接提取days数值,如90 days 04:48:00提取数值90;方法(二)numpy是把整个时间进行换算,如90 days 04:48:00转化为90.200000。可以根据实际需求,选择不同的方法进行时间转换。

最近写的项目用到了knn模型进行预测性分析,但是需要把日期型的字段转为整型,换言之,就是时间戳。

将时间转换成时间戳

例如:

将时间2019-4-13 10:02:23转换成时间戳,具体的操作过程为:

利用strptime()函数将时间转换成时间数组

利用mktime()函数将时间数组转换成时间戳

import time

dt = "2019-4-13 10:02:23"

# 转为时间数组

timeArray = time.strptime(dt,"%Y-%m-%d %H:%M:%S")

# 转为时间戳

timeStamp = int(time.mktime(timeArray))

print(timeStamp)

时间格式转换分为两种,时间转换为字符串和字符串转换为时间,具体代码例子如下:

    1 import datetime

    2 import time

    3 # 日期转换为字符串,使用strftime()函数

    4 # time.strftime(format[, t])

    5

    6 print datetime.datetime.now()

    7 print datetime.datetime.now().strftime("%Y-%m-%d

%H:%M:%S")

    8 print datetime.datetime.now().strftime("%b

%d %Y %H:%M:%S")

    9 print datetime.datetime.now().strftime("%c

%d %Y %H:%M:%S")

   10 # 字符串转换为日期,使用strptime()函数

   11 t = (2009, 2, 17, 8, 3, 38, 1, 48, 0)

   12 t = time.mktime(t)

   13 print time.strftime("%b %d %Y %H:%M:%S",time.gmtime(t))

   14 print time.strftime("%Y-%m-%d %H:%M:%S",time.gmtime(t))

 

注:格式字符说明:

python中时间日期格式化符号:

%y

     两位数的年份表示(00-99)

%Y

     四位数的年份表示(000-9999)

%m

     月份(01-12)

%d

     月内中的一天(0-31)

%H

     24小时制小时数(0-23)

%I

     12小时制小时数(01-12)

%M

     分钟数(00=59)

%S

     秒(00-59)

%a

     本地简化星期名称

%A

     本地完整星期名称

%b

     本地简化的月份名称

%B

     本地完整的月份名称

%c

     本地相应的日期表示和时间表示

%j

     年内的一天(001-366)

%p

     本地A.M.或P.M.的等价符

%U

     一年中的星期数(00-53)星期天为星期的开始

%w

     星期(0-6),星期天为星期的开始

%W

     一年中的星期数(00-53)星期一为星期的开始

%x

     本地相应的日期表示

%X

     本地相应的时间表示

%Z

     当前时区的名称

%%

     %号本身