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