pandas生成時間列表


pandas生成時間列表

1.根據始末時間生成一個時間段

pd.date_range(start, end, freq) freq**參數由英文(M D H Min 。。。)、英文數字結合。D表示一天,M表示一月如20D表示20天,5M表示5個月。

#生成20171011-20171030 
pd.date_range('20171011', '20171030',freq='5D') 
DatetimeIndex(['2017-10-11', '2017-10-16', '2017-10-21', '2017-10-26'], dtype='datetime64[ns]', freq='5D')

2.根據起始向后生成時間段 pd.date_range(日期字符串, periods=5, freq='T')

periods :時間段長度,整數類型
​ freq: 時間單位。月日時分秒。M D H ...

import pandas as pd 
#20171231 12:50時間點開始,生成以月為間隔,長度為5的時間段 
tm_rng = pd.date_range('20171231 12:50',periods=5,freq='M') 
 
print(type(tm_rng)) 
DatetimeIndex(['2017-12-31 12:50:00', '2018-01-31 12:50:00','2018-02-28 12:50:00', '2018-03-31 12:50:00',
 
print(tm_rng)
<class 'pandas.core.indexes.datetimes.DatetimeIndex'> 
'2018-04-30 12:50:00'],dtype='datetime64[ns]', freq='M')

3.根據給定時間點向前(向后)生成時間段

​ pd.bdate_range(end,periods,freq) 根據end時間點開始,以freq為單位,向前生成周期為period的時間序列

​ pd.bdate_range(start,periods,freq) 根據start時間點開始,以freq為單位,向后生成周期為period的時間序列

#向前5天 
print(pd.bdate_range(end='20180101',periods=5,freq='D'))
DatetimeIndex(['2017-12-28', '2017-12-29', '2017-12-30', '2017-12-31','2018-01-01'],dtype='datetime64[ns]', freq='D')

#向后5天 
print(pd.bdate_range(start='20180101',periods=5,freq='D'))
DatetimeIndex(['2018-01-01', '2018-01-02', '2018-01-03', '2018-01-04','2018-01-05'],dtype='datetime64[ns]', freq='D')

4.指定時間格式的時間列表

傳入的日期格式也可以修改,在pd.date_range函數中可以添加freq參數,默認是'D',表示天

import pandas as pd
def get_date_list(begin_date,end_date):
  date_list = [x.strftime('%Y-%m-%d') for x in list(pd.date_range(start=begin_date, end=end_date))]
  return date_list

# 可以測試
print(get_date_list('2018-06-01','2018-06-08'))

#  ['2018-06-01', '2018-06-02', '2018-06-03', '2018-06-04', '2018-06-05', '2018-06-06', '2018-06-07', '2018-06-08']


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM