pandas.date_range
-
pandas.date_range(start=None, end=None, periods=None, freq=None, tz=None, normalize=False, name=None, closed=None, **kwargs)[source] -
Return a fixed frequency DatetimeIndex.
Parameters: -
start : str or datetime-like, optional -
Left bound for generating dates.
-
end : str or datetime-like, optional -
Right bound for generating dates.
-
periods : integer, optional -
Number of periods to generate.
-
freq : str or DateOffset, default ‘D’ -
Frequency strings can have multiples, e.g. ‘5H’. See here for a list of frequency aliases.
-
tz : str or tzinfo, optional -
Time zone name for returning localized DatetimeIndex, for example ‘Asia/Hong_Kong’. By default, the resulting DatetimeIndex is timezone-naive.
-
normalize : bool, default False -
Normalize start/end dates to midnight before generating date range.
-
name : str, default None -
Name of the resulting DatetimeIndex.
-
closed : {None, ‘left’, ‘right’}, optional -
Make the interval closed with respect to the given frequency to the ‘left’, ‘right’, or both sides (None, the default).
- **kwargs
-
For compatibility. Has no effect on the result.
Returns: -
rng : DatetimeIndex
See also
-
pandas.DatetimeIndex - An immutable container for datetimes.
-
pandas.timedelta_range - Return a fixed frequency TimedeltaIndex.
-
pandas.period_range - Return a fixed frequency PeriodIndex.
-
pandas.interval_range - Return a fixed frequency IntervalIndex.
Notes
Of the four parameters
start,end,periods, andfreq, exactly three must be specified. Iffreqis omitted, the resultingDatetimeIndexwill haveperiodslinearly spaced elements betweenstartandend(closed on both sides).To learn more about the frequency strings, please see this link.
Examples
Specifying the values
The next four examples generate the same
DatetimeIndex, but vary the combination ofstart,endandperiods.Specify
startandend, with the default daily frequency.>>> pd.date_range(start='1/1/2018', end='1/08/2018') DatetimeIndex(['2018-01-01', '2018-01-02', '2018-01-03', '2018-01-04', '2018-01-05', '2018-01-06', '2018-01-07', '2018-01-08'], dtype='datetime64[ns]', freq='D')Specify
startandperiods, the number of periods (days).>>> pd.date_range(start='1/1/2018', periods=8) DatetimeIndex(['2018-01-01', '2018-01-02', '2018-01-03', '2018-01-04', '2018-01-05', '2018-01-06', '2018-01-07', '2018-01-08'], dtype='datetime64[ns]', freq='D')Specify
endandperiods, the number of periods (days).>>> pd.date_range(end='1/1/2018', periods=8) DatetimeIndex(['2017-12-25', '2017-12-26', '2017-12-27', '2017-12-28', '2017-12-29', '2017-12-30', '2017-12-31', '2018-01-01'], dtype='datetime64[ns]', freq='D')Specify
start,end, andperiods; the frequency is generated automatically (linearly spaced).>>> pd.date_range(start='2018-04-24', end='2018-04-27', periods=3) DatetimeIndex(['2018-04-24 00:00:00', '2018-04-25 12:00:00', '2018-04-27 00:00:00'], dtype='datetime64[ns]', freq=None)Other Parameters
Changed the
freq(frequency) to'M'(month end frequency).>>> pd.date_range(start='1/1/2018', periods=5, freq='M') DatetimeIndex(['2018-01-31', '2018-02-28', '2018-03-31', '2018-04-30', '2018-05-31'], dtype='datetime64[ns]', freq='M')Multiples are allowed
>>> pd.date_range(start='1/1/2018', periods=5, freq='3M') DatetimeIndex(['2018-01-31', '2018-04-30', '2018-07-31', '2018-10-31', '2019-01-31'], dtype='datetime64[ns]', freq='3M')freqcan also be specified as an Offset object.>>> pd.date_range(start='1/1/2018', periods=5, freq=pd.offsets.MonthEnd(3)) DatetimeIndex(['2018-01-31', '2018-04-30', '2018-07-31', '2018-10-31', '2019-01-31'], dtype='datetime64[ns]', freq='3M')Specify
tzto set the timezone.>>> pd.date_range(start='1/1/2018', periods=5, tz='Asia/Tokyo') DatetimeIndex(['2018-01-01 00:00:00+09:00', '2018-01-02 00:00:00+09:00', '2018-01-03 00:00:00+09:00', '2018-01-04 00:00:00+09:00', '2018-01-05 00:00:00+09:00'], dtype='datetime64[ns, Asia/Tokyo]', freq='D')closedcontrols whether to includestartandendthat are on the boundary. The default includes boundary points on either end.>>> pd.date_range(start='2017-01-01', end='2017-01-04', closed=None) DatetimeIndex(['2017-01-01', '2017-01-02', '2017-01-03', '2017-01-04'], dtype='datetime64[ns]', freq='D')Use
closed='left'to excludeendif it falls on the boundary.>>> pd.date_range(start='2017-01-01', end='2017-01-04', closed='left') DatetimeIndex(['2017-01-01', '2017-01-02', '2017-01-03'], dtype='datetime64[ns]', freq='D')Use
closed='right'to excludestartif it falls on the boundary.>>> pd.date_range(start='2017-01-01', end='2017-01-04', closed='right') DatetimeIndex(['2017-01-02', '2017-01-03', '2017-01-04'], dtype='datetime64[ns]', freq='D') -
© 2008–2012, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/0.24.2/reference/api/pandas.date_range.html