Python处理时间序列常用方法汇总_Python

1. 获取当前时刻时间

返回当前时刻的日期和时间:

from datetime import datetimeprint(datetime.now())

分别返回当前时刻的年月日:

from datetime import datetimeprint(datetime.now().year)print(datetime.now().month)print(datetime.now().day)

返回当前时刻的周数:

from datetime import datetime
#周几print(datetime.now().weekday()+1)#某一年第几周第几天print(datetime.now().isocalendar())


2. 指定日期和时间的格式

from datetime import datetime
#借助date()函数将日期和时间设置成只展示日期print(datetime.now().date())#借助time()函数将日期和时间设置成只展示日期print(datetime.now().time())#借助strftime()函数自定义日期和时间print(datetime.now().strftime('%Y-%m-%d'))#借助strftime()函数自定义日期和时间print(datetime.now().strftime("%Y-%m-%d %H:%M:%S"))


3. 字符串和时间格式相互转换

将时间格式转换成字符串格式:

from datetime import datetime
#新建时间格式的时间,赋值给变量nownow = datetime.now()#用str()函数将now转换为字符串print(type(str(now)))

将字符串格式转换为时间格式:

from dateutil.parser import parse
#新建一个字符串格式的时间str_time = "2020-03-27"#用解析函数parse()将str_time解析为时间print(type(parse(str_time)))


4. 时间索引

import pandas as pdimport numpy as np#建立数据集index = pd.DatetimeIndex(['2018-01-01','2018-01-02','2018-01-03','2018-01-04','2018-01-05','2018-01-06','2018-01-07','2018-01-08','2018-01-09','2018-01-10'])data = pd.DataFrame(np.arange(1,11),columns=['num'],index=index)
print (data)
#获取2018年数据print (data["2018"])#获取2018年1月数据print (data["2018-01"])#获取2018年1月1日到2018年1月5日数据print (data["2018-01-01":"2018-01-05"])



5. 时间运算

两个时间之差:

from datetime import datetime
#两个时间之差cha = datetime(2018,5,21,19,50) - datetime(2018,5,18,20,30)print (cha)#返回天的时间差print(cha.days)#返回秒的时间差print(cha.seconds)#换算成小时的时间差print(cha.seconds/3600)

时间偏移(timedelta):

from datetime import timedeltafrom datetime import datetime
date = datetime(2018,5,18,20,32)
#往后推一天print(date+timedelta(days=1))#往后推60秒print(date+timedelta(seconds=60))#往前推一天print(date-timedelta(days=1))#往前推60秒print(date-timedelta(seconds=60))

时间偏移(date offset):

import pandas as pdfrom pandas.tseries.offsets import Day,Hour,Minutefrom datetime import timedeltafrom datetime import datetime
date = datetime(2018,5,18,20,32)
#往后推一天print(date+Day(1))#往后推1小时print(date+Hour(1))#往后推10分钟print(date+Minute(10))