如何将日期时间编码为数字?
How to encode datetime as numbers?
我正在寻找一种方法来将 2017-11-28 11:45:00
之类的 DateTime 条目编码为包含每个月、每个工作日(包括星期六)和假期的数字的数字代码,所有这些都是唯一的数字,包括星期天,和白班一样的时间,比如早上和下午。
因此,日期时间 2017-11-28 11:45:00
是 11 月、星期四、早上会得到类似 1121
的内容,其中 11 月是 11 日,星期二是 2 日,早上是 1 日。
但是,2017-04-23 14:30:03
即四月、星期日、下午,会得到类似 472 的结果,其中 4 是四月,7 是星期日,还有 2 个下午。假期应该像星期一一样编码,但星期六则不然。
当然,上面的代码格式只是一个想法,并不是强制的。
我想将这些数据用作神经网络输入,因此为了我的建模目的,了解具体的工作日、假期、白班和月份非常重要。
谢谢
- - - - - - - - -
Input: date
Process : Main
Output: Format: Month + day + turn
Process:
month = get_month(date)
day_week = get_day(date)
hour = get_your(date)
f_monht = format_month(month)
f_day = format_day(day_week)
f_turn = format_turn(hour)
print f_monht + f_day + f_turn
# ---------import-------------
import datetime
# ----------DEFs--------------
def format_date(date_string):
d = datetime.datetime.strptime(date_string, '%Y-%m-%d %H:%M:%S')
#month = get_month(date)
month = d.month
# day_week = get_day(date)
day_week = d.weekday()
# hour = get_hour(date)
hour = d.hour
f_monht = format_month(month)
f_day = format_day(day_week)
f_turn = format_turn(hour)
return f_monht + f_day+f_turn
def format_month(month):
return str(month)
def format_day(day_week):
return str(day_week+1)
def format_turn(hour):
if hour < 12:
return '1'
elif hour <18:
return '2'
else:
return '3'
#-----------MAIN--------------
date_1 = '2017-11-28 11:45:00'
f_date_1 = format_date(date_1)
print(f_date_1)
date_2 = '2017-04-23 14:30:03'
f_date_2 = format_date(date_2)
print(f_date_2)
源代码量大,恰恰是为了教育目的。由您自行决定减少
我正在寻找一种方法来将 2017-11-28 11:45:00
之类的 DateTime 条目编码为包含每个月、每个工作日(包括星期六)和假期的数字的数字代码,所有这些都是唯一的数字,包括星期天,和白班一样的时间,比如早上和下午。
因此,日期时间 2017-11-28 11:45:00
是 11 月、星期四、早上会得到类似 1121
的内容,其中 11 月是 11 日,星期二是 2 日,早上是 1 日。
但是,2017-04-23 14:30:03
即四月、星期日、下午,会得到类似 472 的结果,其中 4 是四月,7 是星期日,还有 2 个下午。假期应该像星期一一样编码,但星期六则不然。
当然,上面的代码格式只是一个想法,并不是强制的。
我想将这些数据用作神经网络输入,因此为了我的建模目的,了解具体的工作日、假期、白班和月份非常重要。
谢谢
- - - - - - - - -
Input: date
Process : Main
Output: Format: Month + day + turn
Process:
month = get_month(date)
day_week = get_day(date)
hour = get_your(date)
f_monht = format_month(month)
f_day = format_day(day_week)
f_turn = format_turn(hour)
print f_monht + f_day + f_turn
# ---------import-------------
import datetime
# ----------DEFs--------------
def format_date(date_string):
d = datetime.datetime.strptime(date_string, '%Y-%m-%d %H:%M:%S')
#month = get_month(date)
month = d.month
# day_week = get_day(date)
day_week = d.weekday()
# hour = get_hour(date)
hour = d.hour
f_monht = format_month(month)
f_day = format_day(day_week)
f_turn = format_turn(hour)
return f_monht + f_day+f_turn
def format_month(month):
return str(month)
def format_day(day_week):
return str(day_week+1)
def format_turn(hour):
if hour < 12:
return '1'
elif hour <18:
return '2'
else:
return '3'
#-----------MAIN--------------
date_1 = '2017-11-28 11:45:00'
f_date_1 = format_date(date_1)
print(f_date_1)
date_2 = '2017-04-23 14:30:03'
f_date_2 = format_date(date_2)
print(f_date_2)
源代码量大,恰恰是为了教育目的。由您自行决定减少