Python数据分析:Python日期和时间处理及操作
时间序列分类:
- 时间戳(timestamp) 特定的时刻
- 固定周期(period) 某月或某年
- 时间间隔(interval) 由起始时间戳和结束时间戳表示
datetime, time及calendar模块:
-
datatime 以毫秒形式存储时间和日期
from datetime import datetime now = datetime.now() print(now)
运行:
-
datatime.timedelta 表示两个datatime对象的时间差
diff = datetime(2019, 4, 28, 17) - datetime(2019, 2, 18, 15) print(type(diff)) print(diff) print('经历了{}天, {}秒。'.format(diff.days, diff.seconds))
运行:
-
datatime模块中包含的数据类型
类型 | 描述 |
---|---|
data | 以公历形式存储日历日期(年、月、日) |
time | 将时间存储为时、分、秒、毫秒 |
datatime | 存储日期和时间 |
timedelta | 两个datatime值之间的差(日、秒、毫秒) |
字符串与datatime之间的转换:
-
datatime 转换成 str
-
str(datatime_obj)
# str() dt_obj = datetime(2019, 4, 28) str_obj = str(dt_obj) print(type(str_obj)) print(str_obj)
运行:
-
datatime.strftime()
# datetime.strftime() str_obj2 = dt_obj.strftime('%Y-%m-%d') print(str_obj2)
运行:
-
-
str 转换成 datatime
-
datetime.strptime() 需要指定时间表示的形式
# strptime dt_str = '2019-04-28' dt_obj2 = datetime.strptime(dt_str, '%Y-%m-%d') print(type(dt_obj2)) print(dt_obj2)
运行:
-
datautil.parser.parse() 可以解析大部分时间表示形式
# dateutil.parser.parse from dateutil.parser import parse dt_str2 = '2019/04/28' dt_obj3 = parse(dt_str2) print(type(dt_obj3)) print(dt_obj3)
运行:
-
pd.to_datatime() 可以处理缺失值和空字符串
-
-
datatime常用格式定义
格式 说明 %Y 4位数的年 %y 2位数的年 %m 2位数的月 %d 2位数的日 %H 时(24小时制) %I 时(12小时制) %M 2位数的分 %S 秒 %w 用于整数表示的星期 %U 每年的第几周,星期天为每周的第一天 %W 每年的第几周,星期一为每周第一天 %z 以+HHMM或-HHMM表示的UTC时区偏移量 %F %Y-%m-%d形式 %D %m/%d/%y形式