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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。
