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