在 pandas 中,有乙個非常常用的函式 date_range,尤其是在處理時間序列資料時,這個函式的作用就是產生乙個 datetimeindex,就是時間序列資料的索引。
pandas.
date_range
(start=none, end=none, periods=none, freq=none, tz=none, normalize=false, name=none, closed=none, **kwargs) → pandas.core.indexes.datetimes.datetimeindex
返回乙個固定頻率的datetimeindex。
引數:start:str 或 datetime-like,可選,預設值是none,表示日期的起點。
end:str 或 datetime-like,可選,預設值是none,表示日期的終點。
periods:int,可選,預設值是none,表示你要從和這個函式產生多少個日期索引值(要生成的週期數);如果是none的話,那麼 start 和 end 必須不能為 none。
freq:str 或 dateoffset,預設 「d」,表示以自然日為單位,這個引數用來指定計時單位,比如 「5h」表示每隔5個小時計算一次。
名稱說明
b業務日頻率
c自定義業務日頻率
d日曆天頻率
w每週一次的頻率
m月結束頻率
sm月結頻次(15次、月末)
bm業務月末頻率
cbm自定義業務月底頻率
ms月開始頻率
sms開始頻率(1號、15號)
bms業務月開始頻率
cbms
自定義業務月開始頻率
q季度結束頻率
bq業務季度結束頻率
qs季度開始頻
bqs季度開始頻率
a, y
年底頻率
ba, by
業務年度結束頻率
as, ys
年開始頻
bas, bys
業務年度開始頻率
bh營業時間頻率
h每小時的頻率
t, min
每分鐘的頻率
s每秒頻率
l, ms
毫秒u, us微秒n
納秒tz:str 或 tzinfo,可選,返回本地化的datetimeindex的時區名稱,例如' asia/hong_kong '。預設情況下,生成的datetimeindex是與時區無關的。
normalize:bool,預設 false。如果為 true 的話,那麼在產生時間索引值之前會先把 start 和 end 都轉化為當日的午夜 0 點。
name:str,預設 none。給返回的時間索引指定乙個名字。
closed:,可選。預設值為 none,表示 start 和 end 這個區間端點是否包含在區間內,可以有三個值,「left」 表示左閉右開區間,「right」 表示左開右閉區間,none 表示兩邊都是閉區間。
**kwargs:相容性,對結果沒影響。
import pandas as pd, numpy as np
# 建立時間序列(預設 freq="d")
time_index = pd.date_range(start="2020-03-01", end="2020-03-15")
print(time_index)
# 執行結果:
datetimeindex(['2020-03-01', '2020-03-02', '2020-03-03', '2020-03-04',
'2020-03-05', '2020-03-06', '2020-03-07', '2020-03-08',
'2020-03-09', '2020-03-10', '2020-03-11', '2020-03-12',
'2020-03-13', '2020-03-14', '2020-03-15'],
dtype='datetime64[ns]', freq='d')
# 建立 10 個時間序列
time_index02 = pd.date_range(start="2020-03-01", periods=10)
print(time_index02)
# 執行結果:
datetimeindex(['2020-03-01', '2020-03-02', '2020-03-03', '2020-03-04',
'2020-03-05', '2020-03-06', '2020-03-07', '2020-03-08',
'2020-03-09', '2020-03-10'],
dtype='datetime64[ns]', freq='d')
# 建立乙個時間序列,步長 3 天
time_index03 = pd.date_range(start="2020-03-01", periods=10, freq="3d")
print(time_index03)
# 執行結果:
datetimeindex(['2020-03-01', '2020-03-04', '2020-03-07', '2020-03-10',
'2020-03-13', '2020-03-16', '2020-03-19', '2020-03-22',
'2020-03-25', '2020-03-28'],
dtype='datetime64[ns]', freq='3d')
# 建立乙個時間序列,以分鐘為步長
time_index04 = pd.date_range(start="2020-03-01", periods=10, freq="s")
print(time_index04)
# 執行結果:
datetimeindex(['2020-03-01 00:00:00', '2020-03-01 00:00:01',
'2020-03-01 00:00:02', '2020-03-01 00:00:03',
'2020-03-01 00:00:04', '2020-03-01 00:00:05',
'2020-03-01 00:00:06', '2020-03-01 00:00:07',
'2020-03-01 00:00:08', '2020-03-01 00:00:09'],
dtype='datetime64[ns]', freq='s')
data = np.random.randint(3000, 3010, 10)
print(data)
# 執行結果:
[3001 3005 3001 3009 3002 3008 3002 3000 3001 3003]
time_index05 = pd.series(data, time_index04)
print(time_index05)
# 執行結果:
2020-03-01 00:00:00 3001
2020-03-01 00:00:01 3005
2020-03-01 00:00:02 3001
2020-03-01 00:00:03 3009
2020-03-01 00:00:04 3002
2020-03-01 00:00:05 3008
2020-03-01 00:00:06 3002
2020-03-01 00:00:07 3000
2020-03-01 00:00:08 3001
2020-03-01 00:00:09 3003
freq: s, dtype: int32
pandas之時間序列
pandas中提供了許多用來處理時間格式文字的方法,包括按不同方法生成乙個時間序列,修改時間的格式,重取樣等等。in 7 import pandas as pd 按起始和終止日期以及步長生成時間序列 in 8 pd.date range start 20171212 end 20180101 fre...
pandas學習之時序資料
時序資料處理太難了,很多知識點沒有搞明白。先把自己理解清楚的內容記錄下。1 首先需要知道,時間變數在python系統中是以時間戳型別儲存的,由日期和時間共同組成,即timestamp,精確到ns。2 date range 是一種生成連續間隔時間的一種方法,其重要的引數為 start,end,freq...
Python之時間處理
一.關於時間幾種常用的處理方法 time包和datetime包 1 引入time包,import time 1.獲取從1970年到現在的秒數,至於為什麼從1970年開始這裡就不過多闡述了 我不會告訴你其實我也不知道 timeline time.time print timeline 輸出結果 153...