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)
输出结果为:2019-09-30 00:00:00

  1. 转换UNIX时间戳为普通时间

from datetime import datetime
timeStamp = 1381419600
dateArray = datetime.utcfromtimestamp(timeStamp)
otherStyleTime = dateArray.strftime("%Y-%m-%d %H:%M:%S")
print (otherStyleTime)
输出结果为:2013-10-10 15:40:00

在后面遇到关于时间日期问题时,还会慢慢再来做补充

相关资源:pandas 两列时间相减换算为秒的方法

————————————————

转载:

原文链接:python 时间减去一天_python和pandas 时间处理

posted on 2022-08-10 16:12  FrostyForest  阅读(3495)  评论(0编辑  收藏  举报