Pandas bdate_range(~)
方法返回包含指定工作日的 DatetimeIndex
。
參數
1.start
| numeric
或 datetime-like
| optional
範圍的下限。默認情況下,start=None
。
2. end
| numeric
或 datetime-like
| optional
範圍的上限。默認情況下,end=None
。
3. periods
| int
| optional
所需的日期數量。默認情況下,periods=None
。
警告
在上述三個參數中,您隻需指定兩個。
4. freq
| string
或 DateOffset
| optional
兩個連續日期之間的偏移量。默認情況下,freq="B"
(單個工作日)。
5. tz
| str
或 None
| optional
對生成的 DatetimeIndex
進行編碼的時區。
6. normalize
| boolean
| optional
是否將每個日期的時間單位設置為午夜。默認情況下,normalize=True
。
7. name
| string
| optional
分配給結果 DatetimeIndex
的名稱。默認情況下,name=None
。
8. weekmask
| string
或 None
| optional
一周中被視為工作日的日子。默認情況下,weekmask=None
相當於:
"Mon Tue Wed Thu Fri"
如果你設置weekmask
,那麽你還必須設置freq="C"
,這代表CustomBusinessDay.
9. holidays
| array-like
或 None
| optional
被視為非工作日的日期 如果您設置holidays
,那麽你還必須設置freq="C"
,這代表CustomBusinessDay.
10.closed
| string
| optional
是否使邊界包含/排除:
值 |
說明 |
---|---|
|
|
|
|
|
兩個端點都包含在內。 |
|
兩個端點都是互斥的。 |
默認情況下,closed="right"
。
返回值
保存指定工作日的 DatetimeIndex
。
例子
基本用法
要獲取包含兩個日期之間的工作日的 DatetimeIndex
:
pd.bdate_range(start='12/19/2019', end='12/24/2019')
DatetimeIndex(['2019-12-19', '2019-12-20', '2019-12-23', '2019-12-24'], dtype='datetime64[ns]', freq='B')
請注意,2019-12-21
(星期六)和2019-12-22
(星期日)缺失,因為默認情況下周末不被視為工作日。
指定期間
要獲得 3 個工作日的 DatetimeIndex
:
pd.bdate_range(start='12/19/2019', periods=3)
DatetimeIndex(['2019-12-19', '2019-12-20', '2019-12-23'], dtype='datetime64[ns]', freq='B')
您還可以指定 end
和 periods
的組合,如下所示:
pd.bdate_range(end='12/19/2019', periods=3)
DatetimeIndex(['2019-12-17', '2019-12-18', '2019-12-19'], dtype='datetime64[ns]', freq='B')
指定頻率
默認情況下, freq="B"
,這意味著將使用單個工作日的偏移量:
pd.bdate_range(start='12/19/2019', periods=3) # freq="B"
DatetimeIndex(['2019-12-19', '2019-12-20', '2019-12-23'], dtype='datetime64[ns]', freq='B')
要為每對連續日期設置 2
個工作日的偏移量:
pd.bdate_range(start='12/19/2019', periods=3, freq="2B")
DatetimeIndex(['2019-12-19', '2019-12-23', '2019-12-25'], dtype='datetime64[ns]', freq='2B')
此處,2012-12-21
是星期六,因此已從結果中排除。
指定 tz
要將 Asia/Tokyo
的時區編碼到結果 DatetimeIndex
中:
pd.bdate_range(start='12/20/2019', periods=3, tz="Asia/Tokyo")
DatetimeIndex(['2019-12-20 00:00:00+09:00', '2019-12-23 00:00:00+09:00',
'2019-12-24 00:00:00+09:00'],
dtype='datetime64[ns, Asia/Tokyo]', freq='B')
指定標準化
默認情況下, normalize=True
,這意味著日期的時間單位重置為午夜:
pd.bdate_range(start='12/20/2019 15:30:00', periods=3) # normalize=True
DatetimeIndex(['2019-12-20', '2019-12-23', '2019-12-24'], dtype='datetime64[ns]', freq='B')
要保留有關時間單位的信息,請設置 normalize=False
:
pd.bdate_range(start='12/20/2019 15:30:00', periods=3, normalize=False)
DatetimeIndex(['2019-12-20 15:30:00', '2019-12-23 15:30:00',
'2019-12-24 15:30:00'],
dtype='datetime64[ns]', freq='B')
指定名稱
為生成的 DatetimeIndex
指定名稱:
idx = pd.bdate_range(start='12/20/2019', periods=2, name="My Dates")
idx
DatetimeIndex(['2019-12-20', '2019-12-23'], dtype='datetime64[ns]', name='My Dates', freq='B')
從此索引創建DataFrame:
pd.DataFrame({"A":[1,2]}, index=idx)
A
My Dates
2019-12-20 1
2019-12-23 2
請注意 DataFrame 的索引如何顯示我們分配的name
。
指定周掩碼
要更改一周中被視為工作日的日子,請設置 weekmask
參數,如下所示:
pd.bdate_range(start='12/19/2019', freq="C", periods=4, weekmask="Mon Tue Wed Thu")
DatetimeIndex(['2019-12-19', '2019-12-23', '2019-12-24', '2019-12-25'], dtype='datetime64[ns]', freq='C')
當通過weekmask
參數,您還必須指定freq="C"
.在這裏,C
代表CustomBusinessDay.
指定假期
要設置被視為非工作日的日期,請設置 holidays
參數,如下所示:
holidays = ['2019-12-23']
pd.bdate_range(start='12/19/2019', freq="C", periods=4, holidays=holidays)
DatetimeIndex(['2019-12-19', '2019-12-20', '2019-12-24', '2019-12-25'], dtype='datetime64[ns]', freq='C')
請注意 2019-12-23
(周一)如何從返回的 DatetimeIndex
中排除。
相關用法
- Python NumPy busdaycalendar對象用法及代碼示例
- Python binascii.crc32用法及代碼示例
- Python bytes.isupper用法及代碼示例
- Python base64.b64decode()用法及代碼示例
- Python bokeh.plotting.figure.asterisk()用法及代碼示例
- Python bytes.zfill用法及代碼示例
- Python binary轉string用法及代碼示例
- Python base64.b32decode()用法及代碼示例
- Python bytes.expandtabs用法及代碼示例
- Python bytearray()用法及代碼示例
- Python bokeh.plotting.figure.annular_wedge()用法及代碼示例
- Python NumPy base屬性用法及代碼示例
- Python bytes.isalpha用法及代碼示例
- Python base64.b85encode()用法及代碼示例
- Python base64.b64encode()用法及代碼示例
- Python bokeh.plotting.figure.circle()用法及代碼示例
- Python bytes.hex用法及代碼示例
- Python bool()用法及代碼示例
- Python bz2.decompress(s)用法及代碼示例
- Python bokeh.plotting.figure.circle_cross()用法及代碼示例
- Python bokeh.plotting.figure.bezier()用法及代碼示例
- Python bokeh.plotting.figure.diamond()用法及代碼示例
- Python base64.decodebytes(s)用法及代碼示例
- Python base64.a85encode()用法及代碼示例
- Python binary轉ASCII用法及代碼示例
注:本文由純淨天空篩選整理自Isshin Inada大神的英文原創作品 Pandas | bdate_range method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。