python時間日期相加減的實現(xiàn)示例
前言
時間日期相加減,單獨看沒啥意思,但是比如要預(yù)測從當前時間開始,未來12個月的股票變化情況,你只拿到了股票的價格的序列值一共12個,需要把它撲到未來12個月,中間可能跨年。
安裝插件
python-dateutil
pip install python-dateutil
一、python時間處理月份加減
import datetime from dateutil.relativedelta import relativedelta datetime_now = datetime.datetime.now() datetime_three_month_ago = datetime_now - relativedelta(months=3) print(datetime_three_month_ago)
二、python日期相減(秒、小時、天、月、年)
1.例子
代碼如下(示例):
import datetime
today=datetime.datetime.now()
datetime1=today-datetime.timedelta(seconds=10)#減10秒
datetime2=today-datetime.timedelta(minutes=10)#減10分鐘
datetime3=today-datetime.timedelta(hours=1)#減1小時
datetime4=today-datetime.timedelta(days=7)#減1天
datetime5=today-datetime.timedelta(weeks=1)#減1周
datetime6=today.strftime('%Y-%m-%d')#將時間格式化為字符串
print('today:',today)
print('second:',datetime1)
print('minute:',datetime2)
print('hour:',datetime3)
print('day:',datetime4)
print('week:',datetime5)
print('時間格式化為字符串:',datetime6)
import dateutil.relativedelta
datetime7= datetime.datetime.strptime(datetime6, '%Y-%m-%d')#將字符串格式為時間
datetime8 = datetime7 - dateutil.relativedelta.relativedelta(seconds=10)#減10秒
datetime9 = datetime7 - dateutil.relativedelta.relativedelta(minutes=10)#減10分鐘
datetime10 = datetime7 - dateutil.relativedelta.relativedelta(hours=1)#減減1小時
datetime11 = datetime7 - dateutil.relativedelta.relativedelta(days=1)#減1天
datetime12 = datetime7 - dateutil.relativedelta.relativedelta(months=1)#減一個月
datetime13 = datetime7 - dateutil.relativedelta.relativedelta(years=1)#減一年
print('字符串格式為時間:',datetime7)
print('second2:',datetime8)
print('minute2:',datetime9)
print('hour2:',datetime10)
print('day2:',datetime11)
print('month2:',datetime12)
print('year:',datetime13)

2.案例:
處理未來12個月
def get_dynamic_year(i):
today=datetime.datetime.now()
tmp = today + dateutil.relativedelta.relativedelta(months=i)
return tmp.year
def get_dynamic_month(i):
today=datetime.datetime.now()
tmp = today + dateutil.relativedelta.relativedelta(months=i)
return tmp.month
pd_insert["year"] = [get_dynamic_year(i) for i in range(1,13)]
pd_insert["month"] = [ get_dynamic_month(i) for i in range(1,13) ]
處理未來7天的日期
"""
pandas實在是太變態(tài)了,用row.name的方式獲取行索引
把每一天都加上
"""
data_date = today + datetime.timedelta(days=i+1)
return data_date.strftime("%Y-%m-%d")
pd_insert['forecast_date'] = today.strftime("%Y-%m-%d")
pd_insert['data_date'] = pd_insert.apply(
lambda x: get_date(x.name, x['forecast_date']), axis=1)總結(jié)
到此這篇關(guān)于python時間日期相加減的實現(xiàn)示例的文章就介紹到這了,更多相關(guān)python時間日期相加減內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
anaconda jupyter不能導(dǎo)入安裝的lightgbm解決方案
這篇文章主要介紹了anaconda jupyter不能導(dǎo)入安裝的lightgbm解決方案,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03
python生成器和yield關(guān)鍵字(完整代碼)
這篇文章主要介紹了python生成器和yield關(guān)鍵字,文章主要附上完整的代碼及些許的解釋說明,需要的小伙伴可以參考一下2022-01-01
Pandas排序和分組排名(sort和rank)的實現(xiàn)
Pandas是Python中廣泛使用的數(shù)據(jù)處理庫,提供了豐富的功能來處理和分析數(shù)據(jù),本文主要介紹了Pandas排序和分組排名(sort和rank)的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下2024-07-07
python神經(jīng)網(wǎng)絡(luò)ShuffleNetV2模型復(fù)現(xiàn)詳解
這篇文章主要為大家介紹了python神經(jīng)網(wǎng)絡(luò)ShuffleNetV2模型復(fù)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-05-05
Anaconda+pycharm安裝及環(huán)境配置全過程
在使用pyCharm進行開發(fā)時,需要用到Anaconda創(chuàng)建的環(huán)境,下面這篇文章主要給大家介紹了關(guān)于Anaconda+pycharm安裝及環(huán)境配置的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2022-09-09

