Python和Pandas 时间处理(加、减、转换)
今天在CSDN上看到一篇文章,是关于时间处理的,解决了很多我的历史遗留问题(时间戳上的处理一直是个大问题),接下来就将这篇文章转载给大家,希望能在各位的日常工作中能有所帮助!
Python和Pandas 时间处理
python标准库包含于日期(date)和时间(time)数据的数据类型,datetime、time以及calendar模块会被经常用到。
datetime以毫秒形式存储日期和时间,datetime.timedelta表示两个datetime对象之间的时间差。给datetime对象加上或减去一个或多个timedelta,会产生一个新的对象
阅读路线:
python 中datetime 模块的使用
pandas 中 to_datetime模块的使用
工作中常用的时间操作
一: python 中datetime模块使用
from datetime import datetime
from datetime import timedelta
now = datetime.now()
print(now)
#输出结果如下:datetime.datetime(2019, 9, 7, 15, 52, 52, 249151)
delta = now - datetime(2017,6,27,10,10,10,10)
print(delta)
#结果为:72 days, 5:49:07.559481
print(delta.days)
结果为:72
print(delta.seconds)
结果为:20947
print(delta.microseconds)
结果为:559481
其中datetime参数如下:datetime(year, month, day[, hour[, minute[, second[, microsecond[,tzinfo]]]]])
二:pandas 中to_datetime 使用
date=['2017-6-26', '2017-6-27']
import pandas as pd
print(pd.to_datetime(date))
#输出结果为:DatetimeIndex(['2017-06-26', '2017-06-27'], dtype='datetime64[ns]', freq=None)
三:工作中常见时间操作
1.获取当前日期
import datetime
print(datetime.date.today())
#输出结果为:2019-09-07
2.把日期转成字符串
import datetime
today_date=str(datetime.date.today())
print(today_date)
#输出结果为:'2019-09-07'
3.把字符串转成日期
from datetime import datetime
text = '2019-09-07'
y = datetime.strptime(text, '%Y-%m-%d')
print(y)
#输出结果为:2019-09-07
4.当前日期的前后n日期
import datetime
from datetime import timedelta
print(datetime.date.today()+timedelta(days=-1))
#输出结果为:2019-09-06,表示当天日期前一天
4.获得某一日期的月初和月末
from datetime import datetime
text='2019-09-07'
month_first=datetime.strptime(text[:8]+'01','%Y-%m-%d')
print(month_first)
#输出结果为:2019-09-01 00:00:00
month_end=datetime.strptime(text[:5]+str(int(text[5:7])+1)+'-01','%Y-%m-%d')+timedelta(days=-1)
print(month_end)