Pandas date_range(~)
方法返回固定頻率的 DatetimeIndex
。
參數
1.start
| string
或 datetime-like
| optional
範圍的下限(含)。
2. end
| string
或 datetime-like
| optional
範圍的上限(含)。
3. periods
| int
| optional
所需的日期數量。默認情況下,periods=True
。
警告
在上述三個參數中,必須指定兩個 - 不能少,不能多。
4. freq
| string
或 DateOffset
| optional
一對連續日期之間的step-size(間隔)。默認情況下,freq="D"
(一天的step-size)。
5. tz
| str
或 tzinfo
| optional
日期的時區。默認情況下,date-times 很幼稚,沒有任何時區的概念。
6. normalize
| boolean
| optional
是否將日期的時間單位設置為午夜。默認情況下,normalize=False
。
7. name
| string
| optional
生成的 DatetimeIndex
的名稱。默認情況下,name=None
。
8. closed
| None
或 string
| optional
是否使邊界( start
和 end
)包含/排除:
值 |
說明 |
---|---|
|
|
|
|
|
兩個界限都包含在內。 |
默認情況下,closed=None
。
返回值
一個 DatetimeIndex
。
例子
基本用法
要創建從 2020-12-25
到 2020-12-27
(包括兩者)的日期序列:
pd.date_range(start="2020-12-25", end="2020-12-27")
DatetimeIndex(['2020-12-25', '2020-12-26', '2020-12-27'], dtype='datetime64[ns]', freq='D')
默認的step-size(頻率)是一天,因此這就是我們在輸出中看到freq="D"
的原因。
您還可以將 datetime
類似對象用於 start
和 end
:
import datetime
datetime_tomorrow = datetime.date.today() + datetime.timedelta(days=1)
pd.date_range(start=datetime.date.today(), end=datetime_tomorrow)
DatetimeIndex(['2020-09-02', '2020-09-03'], dtype='datetime64[ns]', freq='D')
指定期間
要從 2020-12-25
(含)創建長度為 3
的日期序列:
pd.date_range(start="2020-12-25", periods=3)
DatetimeIndex(['2020-12-25', '2020-12-26', '2020-12-27'], dtype='datetime64[ns]', freq='D')
指定頻率
頻率可以被認為是step-size。默認頻率為1
日:
pd.date_range(start="2020-12-25", periods=3) # freq="D"
DatetimeIndex(['2020-12-25', '2020-12-26', '2020-12-27'], dtype='datetime64[ns]', freq='D')
讓我們嘗試 2 天的間隔:
pd.date_range(start="2020-12-25", periods=3, freq="2D")
DatetimeIndex(['2020-12-25', '2020-12-27', '2020-12-29'], dtype='datetime64[ns]', freq='2D')
現在讓我們嘗試 1 個月的間隔:
pd.date_range(start="2020-12-25", periods=3, freq="M")
DatetimeIndex(['2020-12-31', '2021-01-31', '2021-02-28'], dtype='datetime64[ns]', freq='M')
如果頻率設置為月,則 start
參數的日單位變得無關緊要 - 日將始終設置為月底。
指定時區
我們可以使用 tz
參數顯式指定時區,而不是不知道時區的默認日期:
pd.date_range(start="2020-12-25", periods=3, tz="Europe/Paris")
DatetimeIndex(['2020-12-25 00:00:00+01:00',
'2020-12-26 00:00:00+01:00',
'2020-12-27 00:00:00+01:00'],
dtype='datetime64[ns, Europe/Paris]', freq='D')
請注意我們如何將 +01:00
附加到日期時間,這表示 +1
小時的 UTC 偏移量。
標準化日期
默認情況下,如果您指定一個時間單位,該方法將遵循時間單位(例如一天中的小時):
pd.date_range(start="2020-12-25 05:15:20", periods=3)
DatetimeIndex(['2020-12-25 05:15:20',
'2020-12-26 05:15:20',
'2020-12-27 05:15:20'],
dtype='datetime64[ns]', freq='D')
我們可以通過設置 normalize=True
將日期時間設置為午夜:
pd.date_range(start="2020-12-25 05:15:20", periods=3, normalize=True)
DatetimeIndex(['2020-12-25', '2020-12-26', '2020-12-27'], dtype='datetime64[ns]', freq='D')
指定名稱
為生成的 DatetimeIndex 命名:
pd.date_range(start="2020-12-25", periods=2, name="My Dates")
DatetimeIndex(['2020-12-25', '2020-12-26'], dtype='datetime64[ns]', name='My Dates', freq='D')
請注意我們如何將 name="My Dates"
編碼到 DatetimeIndex
中。
指定收盤價
默認情況下, closed=None
,這意味著下限和上限都包含在內:
pd.date_range(start="2020-12-25", end="2020-12-27")
DatetimeIndex(['2020-12-25', '2020-12-26', '2020-12-27'], dtype='datetime64[ns]', freq='D')
要使下限包含在內且上限不包含,請設置 closed="left"
:
pd.date_range(start="2020-12-25", end="2020-12-27", closed="left")
DatetimeIndex(['2020-12-25', '2020-12-26'], dtype='datetime64[ns]', freq='D')
要使下限不包含且上限包含,請設置 closed="right"
:
pd.date_range(start="2020-12-25", end="2020-12-27", closed="right")
DatetimeIndex(['2020-12-26', '2020-12-27'], dtype='datetime64[ns]', freq='D')
使用 DatetimeIndex 創建 DataFrame
date_range(~)
方法可用於用 DatetimeIndex
初始化 DataFrame,如下所示:
index_date = pd.date_range("2020-12-25", periods=4, freq="3H")
df = pd.DataFrame({"A":["a","b","c","d"]}, index=index_date)
df
A
2020-12-25 00:00:00 a
2020-12-25 03:00:00 b
2020-12-25 06:00:00 c
2020-12-25 09:00:00 d
相關用法
- Python datetime timetuple()用法及代碼示例
- Python datetime astimezone()用法及代碼示例
- Python datetime.time.fromisoformat用法及代碼示例
- Python datetime timetz()用法及代碼示例
- Python datetime.utcoffset()用法及代碼示例
- Python datetime Timezone構造函數用法及代碼示例
- Python date isoformat()用法及代碼示例
- Python datetime.datetime.fromisoformat用法及代碼示例
- Python datetime isocalendar()用法及代碼示例
- Python date toordinal()用法及代碼示例
- Python datetime轉date用法及代碼示例
- Python datetime.tzinfo()用法及代碼示例
- Python date strftime()用法及代碼示例
- Python datetime date()用法及代碼示例
- Python NumPy datetime_data方法用法及代碼示例
- Python datetime.date.isoformat用法及代碼示例
- Python datetime.timetz()用法及代碼示例
- Python datetime.date.replace用法及代碼示例
- Python datetime isoformat()用法及代碼示例
- Python datetime.date.ctime用法及代碼示例
- Python datetime.time.isoformat用法及代碼示例
- Python datetime.datetime.isoformat用法及代碼示例
- Python datetime.timedelta用法及代碼示例
- Python datetime __str__()用法及代碼示例
- Python datetime.date.fromisoformat用法及代碼示例
注:本文由純淨天空篩選整理自Isshin Inada大神的英文原創作品 Pandas | date_range method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。