Python xóa từ ngày

Deleting an index deletes its documents, shards, and metadata. It does not delete related Kibana components, such as data views, visualizations, or dashboards

You cannot delete the current write index of a data stream. To delete the index, you must roll over the data stream so a new write index is created. You can then use the delete index API to delete the previous write index

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
08

[Required, string] Comma-separated list of indices to delete. You cannot specify index aliases

By default, this parameter does not support wildcards [

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
09] or
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
10. To use wildcards or
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
10, set the
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
12 cluster setting to
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
13

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
14

[Optional, Boolean] If

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
13, the request returns an error if any wildcard expression, index alias, or
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
10 value targets only missing or closed indices. This behavior applies even if the request targets other open indices. For example, a request targeting
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
171 returns an error if an index starts with
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
172 but no index starts with
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
173

Defaults to

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
174

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
175

[Optional, string] Type of index that wildcard patterns can match. If the request can target data streams, this argument determines whether wildcard expressions match hidden data streams. Supports comma-separated values, such as

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
176. Valid values are

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
177Match any data stream or index, including hidden ones.
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
178Match open, non-hidden indices. Also matches any non-hidden data stream.
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
179Match closed, non-hidden indices. Also matches any non-hidden data stream. Data streams cannot be closed.
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
080Match hidden data streams and hidden indices. Must be combined with
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
178,
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
179, or both.
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
083Wildcard patterns are not accepted

pandas contains extensive capabilities and features for working with time series data for all domains. Using the NumPy

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
75 and
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
76 dtypes, pandas has consolidated a large number of features from other Python libraries like
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
77 as well as created a tremendous amount of new functionality for manipulating time series data

For example, pandas supports

Parsing time series information from various sources and formats

In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]

Generate sequences of fixed-frequency dates and time spans

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']

Manipulating and converting date times with timezone information

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']

Resampling or converting a time series to a particular frequency

In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64

Performing date and time arithmetic with absolute or relative time increments

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'

pandas provides a relatively compact and self-contained set of tools for performing the above tasks and more

Overview#

pandas captures 4 general time related concepts

  1. Ngày giờ. A specific date and time with timezone support. Similar to

    In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]
    
    In [5]: dti
    Out[5]: 
    DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
                   '2018-01-01 02:00:00'],
                  dtype='datetime64[ns]', freq='H']
    
    78 from the standard library

  2. Time deltas. An absolute time duration. Similar to

    In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]
    
    In [5]: dti
    Out[5]: 
    DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
                   '2018-01-01 02:00:00'],
                  dtype='datetime64[ns]', freq='H']
    
    79 from the standard library

  3. Time spans. A span of time defined by a point in time and its associated frequency

  4. Date offsets. A relative time duration that respects calendar arithmetic. Similar to

    In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]
    
    In [5]: dti
    Out[5]: 
    DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
                   '2018-01-01 02:00:00'],
                  dtype='datetime64[ns]', freq='H']
    
    80 from the
    In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]
    
    In [5]: dti
    Out[5]: 
    DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
                   '2018-01-01 02:00:00'],
                  dtype='datetime64[ns]', freq='H']
    
    81 package

Concept

Scalar Class

Array Class

pandas Data Type

Primary Creation Method

Date times

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
82

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
83

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
84 or
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
85

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
86 hoặc
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
87

đồng bằng thời gian

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
88

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
89

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
90

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
91 hoặc
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
92

khoảng thời gian

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
93

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
94

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
95

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
93 hoặc
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
97

ngày offset

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
98

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
99

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
99

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
98

For time series data, it’s conventional to represent the time component in the index of a

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
02 or
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
03 so manipulations can be performed with respect to the time element

In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
4

However,

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
02 and
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
03 can directly also support the time component as data itself

In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
7

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
02 and
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
03 have extended data type support and functionality for
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
08,
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
09 and
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
93 data when passed into those constructors.
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
98 data however will be stored as
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
12 data

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
5

Lastly, pandas represents null date times, time deltas, and time spans as

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
13 which is useful for representing missing or null date like values and behaves similar as
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
14 does for float data

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
8

Timestamps vs. time spans#

Timestamped data is the most basic type of time series data that associates values with points in time. For pandas objects it means using the points in time

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
9

However, in many cases it is more natural to associate things like change variables with a time span instead. The span represented by

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
93 can be specified explicitly, or inferred from datetime string format

For example

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
0

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
82 and
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
93 can serve as an index. Lists of
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
82 and
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
93 are automatically coerced to
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
83 and
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
94 respectively

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
1

gấu trúc cho phép bạn chụp cả hai biểu diễn và chuyển đổi giữa chúng. Under the hood, pandas represents timestamps using instances of

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
82 and sequences of timestamps using instances of
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
83. For regular time spans, pandas uses
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
93 objects for scalar values and
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
94 for sequences of spans. Better support for irregular intervals with arbitrary start and end points are forth-coming in future releases

Converting to timestamps#

To convert a

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
02 or list-like object of date-like objects e. g. strings, epochs, or a mixture, you can use the
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
86 function. When passed a
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
02, this returns a
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
02 [with the same index], while a list-like is converted to a
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
83

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
2

If you use dates which start with the day first [i. e. European style], you can pass the

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
31 flag

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
3

Warning

You see in the above example that

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
31 isn’t strict. If a date can’t be parsed with the day being first it will be parsed as if
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
31 were False, and in the case of parsing delimited date strings [e. g.
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
34] then a warning will also be raised

If you pass a single string to

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
86, it returns a single
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
82.
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
82 can also accept string input, but it doesn’t accept string parsing options like
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
31 or
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
39, so use
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
86 if these are required

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
4

You can also use the

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
83 constructor directly

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
5

The string ‘infer’ can be passed in order to set the frequency of the index as the inferred frequency upon creation

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
6

Providing a format argument#

In addition to the required datetime string, a

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
39 argument can be passed to ensure specific parsing. This could also potentially speed up the conversion considerably

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
7

For more information on the choices available when specifying the

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
39 option, see the Python datetime documentation

Lắp ráp datetime từ nhiều cột DataFrame#

Bạn cũng có thể chuyển một

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
03 cột số nguyên hoặc chuỗi để tập hợp thành một
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
02 của
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
46

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
8

Bạn chỉ có thể vượt qua các cột mà bạn cần lắp ráp

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
9

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
47 tìm kiếm các chỉ định tiêu chuẩn của thành phần ngày giờ trong tên cột, bao gồm

  • yêu cầu.

    In [6]: dti = dti.tz_localize["UTC"]
    
    In [7]: dti
    Out[7]: 
    DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
                   '2018-01-01 02:00:00+00:00'],
                  dtype='datetime64[ns, UTC]', freq='H']
    
    In [8]: dti.tz_convert["US/Pacific"]
    Out[8]: 
    DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
                   '2017-12-31 18:00:00-08:00'],
                  dtype='datetime64[ns, US/Pacific]', freq='H']
    
    48,
    In [6]: dti = dti.tz_localize["UTC"]
    
    In [7]: dti
    Out[7]: 
    DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
                   '2018-01-01 02:00:00+00:00'],
                  dtype='datetime64[ns, UTC]', freq='H']
    
    In [8]: dti.tz_convert["US/Pacific"]
    Out[8]: 
    DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
                   '2017-12-31 18:00:00-08:00'],
                  dtype='datetime64[ns, US/Pacific]', freq='H']
    
    49,
    In [6]: dti = dti.tz_localize["UTC"]
    
    In [7]: dti
    Out[7]: 
    DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
                   '2018-01-01 02:00:00+00:00'],
                  dtype='datetime64[ns, UTC]', freq='H']
    
    In [8]: dti.tz_convert["US/Pacific"]
    Out[8]: 
    DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
                   '2017-12-31 18:00:00-08:00'],
                  dtype='datetime64[ns, US/Pacific]', freq='H']
    
    50

  • không bắt buộc.

    In [6]: dti = dti.tz_localize["UTC"]
    
    In [7]: dti
    Out[7]: 
    DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
                   '2018-01-01 02:00:00+00:00'],
                  dtype='datetime64[ns, UTC]', freq='H']
    
    In [8]: dti.tz_convert["US/Pacific"]
    Out[8]: 
    DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
                   '2017-12-31 18:00:00-08:00'],
                  dtype='datetime64[ns, US/Pacific]', freq='H']
    
    51,
    In [6]: dti = dti.tz_localize["UTC"]
    
    In [7]: dti
    Out[7]: 
    DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
                   '2018-01-01 02:00:00+00:00'],
                  dtype='datetime64[ns, UTC]', freq='H']
    
    In [8]: dti.tz_convert["US/Pacific"]
    Out[8]: 
    DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
                   '2017-12-31 18:00:00-08:00'],
                  dtype='datetime64[ns, US/Pacific]', freq='H']
    
    52,
    In [6]: dti = dti.tz_localize["UTC"]
    
    In [7]: dti
    Out[7]: 
    DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
                   '2018-01-01 02:00:00+00:00'],
                  dtype='datetime64[ns, UTC]', freq='H']
    
    In [8]: dti.tz_convert["US/Pacific"]
    Out[8]: 
    DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
                   '2017-12-31 18:00:00-08:00'],
                  dtype='datetime64[ns, US/Pacific]', freq='H']
    
    53,
    In [6]: dti = dti.tz_localize["UTC"]
    
    In [7]: dti
    Out[7]: 
    DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
                   '2018-01-01 02:00:00+00:00'],
                  dtype='datetime64[ns, UTC]', freq='H']
    
    In [8]: dti.tz_convert["US/Pacific"]
    Out[8]: 
    DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
                   '2017-12-31 18:00:00-08:00'],
                  dtype='datetime64[ns, US/Pacific]', freq='H']
    
    54,
    In [6]: dti = dti.tz_localize["UTC"]
    
    In [7]: dti
    Out[7]: 
    DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
                   '2018-01-01 02:00:00+00:00'],
                  dtype='datetime64[ns, UTC]', freq='H']
    
    In [8]: dti.tz_convert["US/Pacific"]
    Out[8]: 
    DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
                   '2017-12-31 18:00:00-08:00'],
                  dtype='datetime64[ns, US/Pacific]', freq='H']
    
    55,
    In [6]: dti = dti.tz_localize["UTC"]
    
    In [7]: dti
    Out[7]: 
    DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
                   '2018-01-01 02:00:00+00:00'],
                  dtype='datetime64[ns, UTC]', freq='H']
    
    In [8]: dti.tz_convert["US/Pacific"]
    Out[8]: 
    DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
                   '2017-12-31 18:00:00-08:00'],
                  dtype='datetime64[ns, US/Pacific]', freq='H']
    
    56

Dữ liệu không hợp lệ

Hành vi mặc định,

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
57, là tăng khi không thể phân tích cú pháp

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
0

Vượt qua

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
58 để trả về đầu vào ban đầu khi không thể phân tích cú pháp

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
1

Vượt qua

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
59 để chuyển đổi dữ liệu không thể phân tích cú pháp thành
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
13 [không phải thời gian]

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
2

Dấu thời gian Epoch#

gấu trúc hỗ trợ chuyển đổi thời gian số nguyên hoặc số float thành

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
82 và
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
83. Đơn vị mặc định là nano giây, vì đó là cách các đối tượng
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
82 được lưu trữ bên trong. Tuy nhiên, các kỷ nguyên thường được lưu trữ trong một
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
64 khác có thể được chỉ định. Chúng được tính toán từ điểm bắt đầu được chỉ định bởi tham số
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
65

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
3

Ghi chú

Tham số

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
64 không sử dụng các chuỗi giống như tham số
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
39 đã được thảo luận ở trên ]. Các đơn vị có sẵn được liệt kê trên tài liệu cho
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
68.

Thay đổi trong phiên bản 1. 0. 0

Xây dựng một

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
82 hoặc
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
83 với dấu thời gian epoch với đối số
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
71 được chỉ định sẽ làm tăng ValueError. Nếu bạn có các kỷ nguyên trong thời gian treo tường ở múi giờ khác, bạn có thể đọc các kỷ nguyên đó dưới dạng dấu thời gian không có múi giờ và sau đó bản địa hóa thành múi giờ thích hợp

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
4

Ghi chú

Thời gian Epoch sẽ được làm tròn đến nano giây gần nhất

Warning

Chuyển đổi thời gian trôi nổi có thể dẫn đến kết quả không chính xác và không mong muốn. Python float có độ chính xác khoảng 15 chữ số ở dạng thập phân. Làm tròn trong quá trình chuyển đổi từ float sang độ chính xác cao

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
82 là không thể tránh khỏi. Cách duy nhất để đạt được độ chính xác chính xác là sử dụng các loại chiều rộng cố định [e. g. một int64].

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
5

Xem thêm

Sử dụng tham số gốc

Từ dấu thời gian đến kỷ nguyên #

Để đảo ngược thao tác ở trên, cụ thể là chuyển đổi từ

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
82 sang kỷ nguyên 'unix'

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
6

Chúng tôi trừ đi kỷ nguyên [nửa đêm ngày 1 tháng 1 năm 1970 UTC] và sau đó chia sàn cho “đơn vị” [1 giây]

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
7

Sử dụng tham số
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
65#

Sử dụng tham số

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
65, người ta có thể chỉ định một điểm bắt đầu thay thế để tạo một
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
83. Ví dụ: để sử dụng 1960-01-01 làm ngày bắt đầu

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
8

Giá trị mặc định được đặt là

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
77, giá trị mặc định là
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
78. Commonly called ‘unix epoch’ or POSIX time

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
9

Đang tạo phạm vi dấu thời gian#

Để tạo chỉ mục có dấu thời gian, bạn có thể sử dụng hàm tạo

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
83 hoặc
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
80 và chuyển vào danh sách đối tượng ngày giờ

In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
0

Trong thực tế, điều này trở nên rất cồng kềnh vì chúng ta thường cần một chỉ mục rất dài với một số lượng lớn dấu thời gian. Nếu chúng ta cần dấu thời gian với tần suất thường xuyên, chúng ta có thể sử dụng các hàm

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
81 và
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
82 để tạo một
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
83. Tần suất mặc định cho
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
87 là ngày dương lịch trong khi mặc định cho
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
85 là ngày làm việc

In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
1

Các chức năng tiện lợi như

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
87 và
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
85 có thể sử dụng nhiều bí danh tần số .

In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
2

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
87 và
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
85 giúp dễ dàng tạo phạm vi ngày bằng cách sử dụng các kết hợp tham số khác nhau như
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
90,
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
91,
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
92 và
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
93. Ngày bắt đầu và ngày kết thúc được bao gồm một cách nghiêm ngặt, vì vậy các ngày nằm ngoài những ngày được chỉ định sẽ không được tạo

In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
3

Việc chỉ định

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
90,
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
91 và
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
92 sẽ tạo ra một phạm vi ngày cách đều nhau từ
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
90 đến
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
91, với số phần tử
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
92 trong kết quả là
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
83

In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
4

Dải tần số tùy chỉnh#

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
85 cũng có thể tạo phạm vi ngày tần suất tùy chỉnh bằng cách sử dụng tham số
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
02 và
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
03. Các thông số này sẽ chỉ được sử dụng nếu một chuỗi tần số tùy chỉnh được chuyển

In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
5

Xem thêm

ngày làm việc tùy chỉnh

Giới hạn dấu thời gian#

Do gấu trúc biểu thị dấu thời gian ở độ phân giải nano giây nên khoảng thời gian có thể được biểu thị bằng số nguyên 64 bit bị giới hạn trong khoảng 584 năm

In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
6

Xem thêm

Đại diện cho các khoảng ngoài giới hạn

Lập chỉ mục #

Một trong những cách sử dụng chính của

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
83 là làm chỉ mục cho các đối tượng gấu trúc. Lớp
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
83 chứa nhiều tối ưu hóa liên quan đến chuỗi thời gian

  • Một phạm vi ngày rộng lớn cho các khoảng thời gian bù trừ khác nhau được tính toán trước và lưu vào bộ đệm ẩn để tạo ra các phạm vi ngày tiếp theo rất nhanh [chỉ cần lấy một lát]

  • Dịch chuyển nhanh bằng phương thức

    In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]
    
    In [10]: ts = pd.Series[range[len[idx]], index=idx]
    
    In [11]: ts
    Out[11]: 
    2018-01-01 00:00:00    0
    2018-01-01 01:00:00    1
    2018-01-01 02:00:00    2
    2018-01-01 03:00:00    3
    2018-01-01 04:00:00    4
    Freq: H, dtype: int64
    
    In [12]: ts.resample["2H"].mean[]
    Out[12]: 
    2018-01-01 00:00:00    0.5
    2018-01-01 02:00:00    2.5
    2018-01-01 04:00:00    4.0
    Freq: 2H, dtype: float64
    
    06 trên các đối tượng gấu trúc

  • Việc kết hợp các đối tượng

    In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]
    
    In [5]: dti
    Out[5]: 
    DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
                   '2018-01-01 02:00:00'],
                  dtype='datetime64[ns]', freq='H']
    
    83 chồng chéo có cùng tần số diễn ra rất nhanh [quan trọng đối với việc căn chỉnh dữ liệu nhanh]

  • Truy cập nhanh vào các trường ngày thông qua các thuộc tính như

    In [6]: dti = dti.tz_localize["UTC"]
    
    In [7]: dti
    Out[7]: 
    DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
                   '2018-01-01 02:00:00+00:00'],
                  dtype='datetime64[ns, UTC]', freq='H']
    
    In [8]: dti.tz_convert["US/Pacific"]
    Out[8]: 
    DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
                   '2017-12-31 18:00:00-08:00'],
                  dtype='datetime64[ns, US/Pacific]', freq='H']
    
    48,
    In [6]: dti = dti.tz_localize["UTC"]
    
    In [7]: dti
    Out[7]: 
    DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
                   '2018-01-01 02:00:00+00:00'],
                  dtype='datetime64[ns, UTC]', freq='H']
    
    In [8]: dti.tz_convert["US/Pacific"]
    Out[8]: 
    DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
                   '2017-12-31 18:00:00-08:00'],
                  dtype='datetime64[ns, US/Pacific]', freq='H']
    
    49, v.v.

  • Các chức năng chính quy hóa như

    In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]
    
    In [10]: ts = pd.Series[range[len[idx]], index=idx]
    
    In [11]: ts
    Out[11]: 
    2018-01-01 00:00:00    0
    2018-01-01 01:00:00    1
    2018-01-01 02:00:00    2
    2018-01-01 03:00:00    3
    2018-01-01 04:00:00    4
    Freq: H, dtype: int64
    
    In [12]: ts.resample["2H"].mean[]
    Out[12]: 
    2018-01-01 00:00:00    0.5
    2018-01-01 02:00:00    2.5
    2018-01-01 04:00:00    4.0
    Freq: 2H, dtype: float64
    
    10 và logic
    In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]
    
    In [10]: ts = pd.Series[range[len[idx]], index=idx]
    
    In [11]: ts
    Out[11]: 
    2018-01-01 00:00:00    0
    2018-01-01 01:00:00    1
    2018-01-01 02:00:00    2
    2018-01-01 03:00:00    3
    2018-01-01 04:00:00    4
    Freq: H, dtype: int64
    
    In [12]: ts.resample["2H"].mean[]
    Out[12]: 
    2018-01-01 00:00:00    0.5
    2018-01-01 02:00:00    2.5
    2018-01-01 04:00:00    4.0
    Freq: 2H, dtype: float64
    
    11 rất nhanh

Các đối tượng

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
83 có tất cả các chức năng cơ bản của các đối tượng
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
80 thông thường và một loạt các phương pháp cụ thể theo chuỗi thời gian nâng cao để xử lý tần số dễ dàng

Xem thêm

Phương pháp lập chỉ mục lại

Ghi chú

Mặc dù gấu trúc không bắt buộc bạn phải có chỉ mục ngày được sắp xếp, nhưng một số phương pháp này có thể có hành vi không mong muốn hoặc không chính xác nếu ngày chưa được sắp xếp

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
83 có thể được sử dụng như một chỉ mục thông thường và cung cấp tất cả các chức năng thông minh của nó như lựa chọn, cắt lát, v.v.

In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
7

Lập chỉ mục chuỗi một phần #

Ngày và chuỗi phân tích thành dấu thời gian có thể được chuyển thành tham số lập chỉ mục

In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
8

Để thuận tiện cho việc truy cập chuỗi thời gian dài hơn, bạn cũng có thể chuyển năm hoặc năm và tháng dưới dạng chuỗi

In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
9

Kiểu cắt này cũng sẽ hoạt động trên

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
03 với
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
83. Vì lựa chọn một phần chuỗi là một dạng cắt nhãn nên các điểm cuối sẽ được đưa vào. Điều này sẽ bao gồm thời gian phù hợp vào một ngày bao gồm

Warning

Lập chỉ mục các hàng

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
03 bằng một chuỗi với getitem [e. g.
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
18] không được dùng nữa bắt đầu với gấu trúc 1. 2. 0 [do sự mơ hồ cho dù nó đang lập chỉ mục các hàng hay chọn một cột] và sẽ bị xóa trong phiên bản tương lai. Tương đương với
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
19 [e. g.
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
20] is still supported

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
0

Điều này bắt đầu vào lần đầu tiên trong tháng và bao gồm ngày và giờ cuối cùng trong tháng

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
1

Điều này chỉ định thời gian dừng bao gồm tất cả thời gian vào ngày cuối cùng

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
2

Điều này chỉ định thời gian dừng chính xác [và không giống như ở trên]

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
3

Chúng tôi đang dừng ở điểm cuối được bao gồm vì nó là một phần của chỉ mục

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
4

Chỉ mục chuỗi một phần của

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
83 cũng hoạt động trên
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
03 với
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
23

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
5

Mới trong phiên bản 0. 25. 0

Cắt lát với lập chỉ mục chuỗi cũng tôn vinh phần bù UTC

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
6

lát vs. kết hợp chuẩn xác#

Cùng một chuỗi được sử dụng làm tham số lập chỉ mục có thể được coi là một lát cắt hoặc khớp chính xác tùy thuộc vào độ phân giải của chỉ mục. Nếu chuỗi kém chính xác hơn chỉ mục, nó sẽ được coi là một lát cắt, nếu không thì sẽ được coi là khớp chính xác

Xem xét một đối tượng

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
02 với chỉ số độ phân giải phút

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
7

Chuỗi dấu thời gian kém chính xác hơn một phút cho đối tượng

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
02

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
8

Một chuỗi dấu thời gian có độ phân giải phút [hoặc chính xác hơn], thay vào đó đưa ra một đại lượng vô hướng, i. e. nó không được đúc thành một lát

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
9

Nếu độ phân giải chỉ mục là thứ hai, thì dấu thời gian chính xác theo phút sẽ cho kết quả

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
02

In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
40

Nếu chuỗi dấu thời gian được coi là một lát cắt, nó cũng có thể được sử dụng để lập chỉ mục cho

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
03 với
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
28

In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
41

Warning

Tuy nhiên, nếu chuỗi được coi là đối sánh chính xác, lựa chọn trong

In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
30 của
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
03 sẽ là theo cột chứ không phải theo hàng, hãy xem Khái niệm cơ bản về lập chỉ mục. For example
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
31 will raise
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
32 as
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
33 has the same resolution as the index and there is no column with such name:

Để luôn có lựa chọn rõ ràng, cho dù hàng được coi là một lát cắt hay một lựa chọn duy nhất, hãy sử dụng

In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
19

In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
42

Cũng lưu ý rằng độ phân giải

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
83 không thể kém chính xác hơn ngày

In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
43

Lập chỉ mục chính xác#

Như đã thảo luận trong phần trước, việc lập chỉ mục một

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
83 với một phần chuỗi phụ thuộc vào “độ chính xác” của khoảng thời gian, nói cách khác, mức độ cụ thể của khoảng thời gian liên quan đến độ phân giải của chỉ mục. Ngược lại, lập chỉ mục với các đối tượng
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
82 hoặc
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
08 là chính xác, bởi vì các đối tượng có ý nghĩa chính xác. Chúng cũng tuân theo ngữ nghĩa bao gồm cả hai điểm cuối

Các đối tượng

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
82 và
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
08 này có chính xác
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
41 và
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
42, mặc dù chúng không được chỉ định rõ ràng [chúng là
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
43]

In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
44

không có mặc định

In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
45

Cắt bớt & lập chỉ mục ưa thích #

Chức năng tiện ích

In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
44 được cung cấp tương tự như cắt lát. Lưu ý rằng
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
45 giả định một giá trị 0 cho bất kỳ thành phần ngày không xác định nào trong một
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
83 trái ngược với cắt lát trả về bất kỳ ngày khớp một phần nào

In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
46

Ngay cả việc lập chỉ mục ưa thích phức tạp phá vỡ tính đều đặn của tần số

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
83 sẽ dẫn đến một
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
83, mặc dù tần số bị mất

In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
47

Thành phần thời gian/ngày#

Có một số thuộc tính thời gian/ngày mà người ta có thể truy cập từ

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
82 hoặc tập hợp các dấu thời gian như
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
83

Tài sản

Description

năm

Năm của ngày giờ

tháng

Tháng của ngày giờ

ngày

Những ngày của datetime

giờ

Giờ của ngày giờ

phút

Biên bản của ngày giờ

thứ hai

Giây của ngày giờ

phần triệu giây

Micro giây của ngày giờ

nano giây

Nano giây của ngày giờ

ngày

Trả về ngày giờ. ngày [không chứa thông tin múi giờ]

thời gian

Trả về ngày giờ. thời gian [không chứa thông tin múi giờ]

múi giờ

Trả về ngày giờ. thời gian là giờ địa phương với thông tin múi giờ

ngày của năm

Ngày thường trong năm

ngày_của_năm

Ngày thường trong năm

tuần của năm

Thứ tự tuần của năm

tuần

Thứ tự tuần của năm

ngày trong tuần

Số ngày trong tuần với Thứ hai = 0, Chủ nhật = 6

ngày trong tuần

Số ngày trong tuần với Thứ hai = 0, Chủ nhật = 6

ngày thường

Số ngày trong tuần với Thứ hai = 0, Chủ nhật = 6

phần tư

Quý của ngày. Tháng 1-tháng 3 = 1, tháng 4-tháng 6 = 2, v.v.

ngày_trong_tháng

Số ngày trong tháng của datetime

là_tháng_bắt đầu

Logic chỉ ra nếu ngày đầu tiên của tháng [được xác định theo tần suất]

là_tháng_cuối

Logic chỉ ra nếu ngày cuối cùng của tháng [được xác định theo tần suất]

is_quý_bắt đầu

Chỉ báo logic nếu ngày đầu tiên của quý [được xác định theo tần suất]

is_ quarter_end

Logic chỉ ra nếu ngày cuối cùng của quý [được xác định theo tần suất]

is_year_start

Logic chỉ ra nếu ngày đầu tiên của năm [được xác định bởi tần suất]

là_năm_cuối

Logic chỉ ra nếu ngày cuối cùng của năm [được xác định bởi tần suất]

is_leap_year

Logical indicating if the date belongs to a leap year

Hơn nữa, nếu bạn có một

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
02 với các giá trị kiểu dữ liệu thời gian, thì bạn có thể truy cập các thuộc tính này thông qua trình truy cập
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
52, như được trình bày chi tiết trong phần trên . trình truy cập dt .

Mới trong phiên bản 1. 1. 0

Bạn có thể lấy các thành phần năm, tuần và ngày của năm ISO từ tiêu chuẩn ISO 8601

In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
48

đối tượng DateOffset#

Trong các ví dụ trước, các chuỗi tần số [e. g.

In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
53] đã được sử dụng để chỉ định tần suất được xác định

  • cách ngày giờ trong

    In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]
    
    In [5]: dti
    Out[5]: 
    DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
                   '2018-01-01 02:00:00'],
                  dtype='datetime64[ns]', freq='H']
    
    83 được đặt cách nhau khi sử dụng
    In [6]: dti = dti.tz_localize["UTC"]
    
    In [7]: dti
    Out[7]: 
    DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
                   '2018-01-01 02:00:00+00:00'],
                  dtype='datetime64[ns, UTC]', freq='H']
    
    In [8]: dti.tz_convert["US/Pacific"]
    Out[8]: 
    DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
                   '2017-12-31 18:00:00-08:00'],
                  dtype='datetime64[ns, US/Pacific]', freq='H']
    
    81

  • tần số của một

    In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]
    
    In [5]: dti
    Out[5]: 
    DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
                   '2018-01-01 02:00:00'],
                  dtype='datetime64[ns]', freq='H']
    
    93 hoặc
    In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]
    
    In [5]: dti
    Out[5]: 
    DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
                   '2018-01-01 02:00:00'],
                  dtype='datetime64[ns]', freq='H']
    
    94

Các chuỗi tần số này ánh xạ tới một đối tượng

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
98 và các lớp con của nó. Một
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
98 tương tự như một
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
88 đại diện cho một khoảng thời gian nhưng tuân theo các quy tắc về thời lượng lịch cụ thể. Ví dụ: ngày
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
88 sẽ luôn tăng
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
62 theo 24 giờ, trong khi ngày
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
98 sẽ tăng
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
62 vào cùng thời điểm của ngày hôm sau cho dù một ngày có 23, 24 hay 25 giờ do tiết kiệm thời gian ban ngày. Tuy nhiên, tất cả các phân lớp
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
98 có thời lượng một giờ hoặc nhỏ hơn [
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
66,
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
67,
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
68,
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
69,
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
70,
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
71] hoạt động giống như
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
88 và tôn trọng thời gian tuyệt đối

Cơ bản ________ 098 hoạt động tương tự như ________ 674 [tài liệu tương đối về đồng bằng] thay đổi ngày giờ theo khoảng thời gian lịch tương ứng được chỉ định. Toán tử số học [

In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
75] có thể được sử dụng để thực hiện ca

In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
49

Hầu hết

In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
76 có chuỗi tần số liên quan hoặc bí danh bù, có thể được chuyển vào đối số từ khóa
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
93. Bạn có thể tìm thấy các giá trị bù ngày khả dụng và các chuỗi tần số liên quan bên dưới

Bù trừ ngày tháng

Chuỗi tần số

Description

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
98

Không có

Lớp bù chung, mặc định là 24 giờ tuyệt đối

In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
79 hoặc
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
80

In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
81

ngày làm việc [ngày thường]

In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
82 hoặc
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
83

In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
84

ngày làm việc tùy chỉnh

In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
85

In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
86

một tuần, tùy chọn neo vào một ngày trong tuần

In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
87

In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
88

ngày x của tuần thứ y mỗi tháng

In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
89

In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
90

ngày x của tuần cuối mỗi tháng

In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
91

In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
92

lịch cuối tháng

In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
93

In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
94

tháng dương lịch bắt đầu

In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
95 hoặc
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
96

In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
97

cuối tháng kinh doanh

In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
98 hoặc
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
99

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
00

tháng làm việc bắt đầu

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
01 hoặc
In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
02

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
03

cuối tháng kinh doanh tùy chỉnh

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
04 or
In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
05

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
06

tháng kinh doanh tùy chỉnh bắt đầu

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
07

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
08

ngày 15 [hoặc ngày_của_tháng] và cuối tháng dương lịch

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
09

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
10

Ngày 15 [hoặc ngày_of_tháng khác] và tháng dương lịch bắt đầu

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
11

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
12

lịch cuối quý

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
13

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
14

bắt đầu quý dương lịch

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
15

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
16

cuối quý kinh doanh

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
17

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
18

bắt đầu quý kinh doanh

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
19

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
20

quý bán lẻ [hay còn gọi là tuần 52-53]

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
21

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
22

cuối năm dương lịch

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
23

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
24 hoặc
In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
25

năm dương lịch bắt đầu

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
26

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
27

kinh doanh cuối năm

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
28

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
29

năm kinh doanh bắt đầu

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
30

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
31

bán lẻ [aka 52-53 tuần] năm

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
32

Không có

lễ Phục sinh

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
33

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
34

giờ làm việc

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
35

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
36

giờ làm việc tùy chỉnh

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
37

In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
53

một ngày tuyệt đối

In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
66

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
40

một giờ

In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
67

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
42 hoặc
In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
43

one minute

In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
68

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
45

một giây

In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
69

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
47 hoặc
In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
48

một phần nghìn giây

In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
70

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
50 hoặc
In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
51

một phần triệu giây

In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
71

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
53

một nano giây

Ngoài ra,

In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
76 có các phương pháp
In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
55 và
In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
56 để di chuyển ngày tới hoặc lùi tương ứng với ngày bù hợp lệ so với ngày bù. Ví dụ: bù trừ doanh nghiệp sẽ chuyển các ngày rơi vào cuối tuần [thứ Bảy và Chủ nhật] sang thứ Hai vì bù trừ doanh nghiệp hoạt động vào các ngày trong tuần

In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
70

Các thao tác này bảo toàn thông tin thời gian [giờ, phút, v.v.] theo mặc định. Để đặt lại thời gian về nửa đêm, hãy sử dụng

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
57 trước hoặc sau khi áp dụng thao tác [tùy thuộc vào việc bạn có muốn đưa thông tin thời gian vào thao tác hay không]

In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
71

Độ lệch tham số #

Một số phần bù có thể được "tham số hóa" khi được tạo để dẫn đến các hành vi khác nhau. Ví dụ: phần bù

In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
85 để tạo dữ liệu hàng tuần chấp nhận tham số
In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
59 dẫn đến ngày được tạo luôn nằm trên một ngày cụ thể trong tuần

In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
72

Tùy chọn

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
60 sẽ có hiệu lực đối với phép cộng và phép trừ

In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
73

Một ví dụ khác là tham số hóa

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
21 với tháng kết thúc cụ thể

In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
74

Sử dụng hiệu số với
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
02 /
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
83#

Offset có thể được sử dụng với

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
02 hoặc
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
83 để áp dụng offset cho từng phần tử

In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
75

Nếu lớp offset ánh xạ trực tiếp tới một

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
88 [
In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
37,
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
66,
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
67,
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
68,
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
70,
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
69,
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
71] thì nó có thể được sử dụng chính xác như một
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
88 - xem Timedelta . for more examples.

In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
76

Lưu ý rằng một số độ lệch [chẳng hạn như

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
15] không có triển khai véc tơ. Chúng vẫn có thể được sử dụng nhưng có thể tính toán chậm hơn đáng kể và sẽ hiển thị
In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
76

In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
77

ngày làm việc tùy chỉnh#

Lớp

In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
82 hoặc
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
83 cung cấp lớp tham số
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
80 có thể được sử dụng để tạo lịch ngày làm việc tùy chỉnh có tính đến các ngày lễ địa phương và quy ước cuối tuần địa phương

Như một ví dụ thú vị, hãy xem Ai Cập nơi có ngày cuối tuần từ Thứ Sáu đến Thứ Bảy

In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
78

Hãy ánh xạ tới tên các ngày trong tuần

In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
79

Lịch nghỉ lễ có thể được sử dụng để cung cấp danh sách ngày lễ. Xem phần lịch nghỉ lễ để biết thêm thông tin.

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
50

Có thể xác định chênh lệch hàng tháng theo lịch nghỉ lễ nhất định theo cách thông thường

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
51

Ghi chú

Chuỗi tần suất 'C' được sử dụng để chỉ ra rằng một CustomBusinessDay DateOffset được sử dụng, điều quan trọng cần lưu ý là vì CustomBusinessDay là một loại được tham số hóa nên các phiên bản của CustomBusinessDay có thể khác và điều này không thể phát hiện được từ chuỗi tần số 'C'. Do đó, người dùng cần đảm bảo rằng chuỗi tần số 'C' được sử dụng nhất quán trong ứng dụng của người dùng

Giờ làm việc#

Lớp ________ 733 cung cấp biểu diễn giờ làm việc trên ________ 680, cho phép sử dụng thời gian bắt đầu và kết thúc cụ thể

Theo mặc định,

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
33 sử dụng 9. 00 - 17. 00 dưới dạng giờ làm việc. Thêm
In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
33 sẽ tăng
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
82 theo tần suất hàng giờ. If target
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
82 is out of business hours, move to the next business hour then increment it. Nếu kết quả vượt quá giờ làm việc kết thúc, số giờ còn lại sẽ được cộng vào ngày làm việc tiếp theo

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
52

Bạn cũng có thể chỉ định thời gian

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
90 và
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
91 theo từ khóa. Đối số phải là một
In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
88 với một đại diện
In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
89 hoặc một thể hiện
In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
90. Chỉ định giây, micro giây và nano giây làm kết quả giờ làm việc trong
In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
91

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
53

Vượt qua thời gian của

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
90 muộn hơn thời gian của
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
91 thể hiện giờ làm việc lúc nửa đêm. Trong trường hợp này, giờ làm việc vượt quá nửa đêm và trùng lặp sang ngày hôm sau. Giờ làm việc hợp lệ được phân biệt bằng việc nó có bắt đầu từ
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
80 hợp lệ hay không

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
54

Áp dụng

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
95 và
In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
96 ngoài giờ làm việc dẫn đến bắt đầu giờ làm việc tiếp theo hoặc kết thúc của ngày hôm trước. Khác với các hiệu số khác, theo định nghĩa,
In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
95 có thể tạo ra các kết quả khác với
In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
98

Điều này là do giờ kết thúc làm việc của một ngày bằng với giờ bắt đầu làm việc của ngày hôm sau. Ví dụ: theo giờ làm việc mặc định [9. 00 - 17. 00], không có khoảng cách [0 phút] giữa

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
99 và
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
400

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
55

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
33 coi thứ bảy và chủ nhật là ngày nghỉ. Để sử dụng các ngày lễ tùy ý, bạn có thể sử dụng phần bù
In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
35, như được giải thích trong tiểu mục sau

Giờ làm việc tùy chỉnh#

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
35 là sự kết hợp giữa
In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
33 và
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
83, cho phép bạn chỉ định các ngày lễ tùy ý.
In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
35 hoạt động giống như
In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
33 ngoại trừ việc nó bỏ qua các ngày lễ tùy chỉnh được chỉ định

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
56

Bạn có thể sử dụng các đối số từ khóa được hỗ trợ bởi

In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
33 và
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
83

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
57

Bí danh bù trừ #

Một số bí danh chuỗi được cung cấp cho các tần số chuỗi thời gian chung hữu ích. Chúng tôi sẽ gọi những bí danh này là bí danh bù

bí danh

Description

B

tần suất ngày làm việc

C

tần suất ngày làm việc tùy chỉnh

D

tần suất ngày dương lịch

W

tần suất hàng tuần

M

tần suất cuối tháng

SM

tần suất nửa tháng cuối [ngày 15 và cuối tháng]

BM

tần suất cuối tháng làm việc

CBM

tần suất cuối tháng kinh doanh tùy chỉnh

tần suất bắt đầu tháng

tin nhắn

tần suất bắt đầu nửa tháng [ngày 1 và ngày 15]

BMS

tần suất bắt đầu tháng làm việc

CBMS

tần suất bắt đầu tháng làm việc tùy chỉnh

Q

tần suất cuối quý

BQ

tần suất cuối quý kinh doanh

QS

tần suất bắt đầu quý

BQS

business quarter start frequency

Một, Y

tần suất cuối năm

ĐỨA BÉ

tần suất cuối năm kinh doanh

NHƯ, YS

tần suất bắt đầu năm

CƠ SỞ, BẰNG

tần suất bắt đầu năm kinh doanh

BH

tần suất giờ làm việc

H

tần suất hàng giờ

T, phút

tần suất nhỏ

S

tần số thứ hai

l, ms

mili giây

bạn, chúng tôi

micro giây

N

nano giây

Ghi chú

Khi sử dụng các bí danh offset ở trên, cần lưu ý rằng các hàm như

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
81,
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
82, sẽ chỉ trả về dấu thời gian nằm trong khoảng thời gian được xác định bởi
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
412 và
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
413. Nếu
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
412 không tương ứng với tần suất, dấu thời gian được trả về sẽ bắt đầu ở dấu thời gian hợp lệ tiếp theo, tương tự đối với
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
413, dấu thời gian được trả về sẽ dừng ở dấu thời gian hợp lệ trước đó

Ví dụ: đối với phần bù

In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
416, nếu
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
412 không phải là ngày đầu tiên của tháng, dấu thời gian được trả về sẽ bắt đầu bằng ngày đầu tiên của tháng tiếp theo. Nếu
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
413 không phải là ngày đầu tiên của tháng, dấu thời gian được trả về cuối cùng sẽ là ngày đầu tiên của tháng tương ứng

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
58

Chúng ta có thể thấy trong ví dụ trên,

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
81 và
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
82 sẽ chỉ trả về dấu thời gian hợp lệ giữa
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
412 và
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
413. Nếu đây không phải là dấu thời gian hợp lệ cho tần suất đã cho, nó sẽ chuyển sang giá trị tiếp theo cho
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
412 [tương ứng trước đó cho
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
413]

Kết hợp các bí danh#

Như chúng ta đã thấy trước đây, bí danh và đối tượng offset có thể thay thế được trong hầu hết các hàm

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
59

Bạn có thể kết hợp bù trừ trong ngày và trong ngày với nhau

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
80

Độ lệch cố định #

Đối với một số tần số, bạn có thể chỉ định hậu tố neo

bí danh

Description

W-SUN

tần suất hàng tuần [Chủ Nhật]. Giống như 'W'

W-MON

tần suất hàng tuần [Thứ Hai]

W-TUE

tần suất hàng tuần [Thứ Ba]

W-WED

tần suất hàng tuần [Thứ Tư]

W-THU

tần suất hàng tuần [thứ Năm]

W-FRI

tần suất hàng tuần [thứ sáu]

W-SAT

tần suất hàng tuần [thứ bảy]

[B]Q[S]-DEC

tần suất hàng quý, năm kết thúc vào tháng 12. Tương tự như 'Q'

[B]Q[S]-JAN

tần suất hàng quý, năm kết thúc vào tháng 1

[B]Q[S]-THÁNG 2

tần suất hàng quý, năm kết thúc vào tháng 2

[B]Q[S]-MAR

quarterly frequency, year ends in March

[B]Q[S]-APR

tần suất hàng quý, năm kết thúc vào tháng 4

[B]Q[S]-MAY

tần suất hàng quý, năm kết thúc vào tháng 5

[B]Q[S]-JUN

tần suất hàng quý, năm kết thúc vào tháng 6

[B]Q[S]-THÁNG 7

tần suất hàng quý, năm kết thúc vào tháng 7

[B]Q[S]-AUG

tần suất hàng quý, năm kết thúc vào tháng 8

[B]Q[S]-SEP

tần suất hàng quý, năm kết thúc vào tháng 9

[B]Q[S]-OCT

tần suất hàng quý, năm kết thúc vào tháng 10

[B]Q[S]-THÁNG 11

tần suất hàng quý, năm kết thúc vào tháng 11

[B]A[S]-DEC

tần suất hàng năm, thả neo vào cuối tháng 12. Giống như 'A'

[B]A[S]-JAN

tần suất hàng năm, neo vào cuối tháng Giêng

[B]A[S]-THÁNG 2

tần suất hàng năm, thả neo vào cuối tháng 2

[B]A[S]-MAR

tần suất hàng năm, thả neo vào cuối tháng 3

[B]A[S]-APR

tần suất hàng năm, thả neo vào cuối tháng 4

[B]A[S]-MAY

tần suất hàng năm, thả neo vào cuối tháng 5

[B]A[S]-JUN

tần suất hàng năm, thả neo vào cuối tháng 6

[B]A[S]-THÁNG 7

tần suất hàng năm, thả neo vào cuối tháng 7

[B]A[S]-AUG

tần suất hàng năm, thả neo vào cuối tháng 8

[B]A[S]-SEP

tần suất hàng năm, thả neo vào cuối tháng 9

[B]A[S]-THÁNG 10

tần suất hàng năm, thả neo vào cuối tháng 10

[B]A[S]-THÁNG 11

tần suất hàng năm, thả neo vào cuối tháng 11

Chúng có thể được sử dụng làm đối số cho

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
87,
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
85, hàm tạo cho
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
83, cũng như nhiều hàm liên quan đến chuỗi thời gian khác trong gấu trúc

Ngữ nghĩa bù đắp cố định #

Đối với những độ lệch được cố định ở đầu hoặc cuối của tần suất cụ thể [

In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
91,
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
93,
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
430, v.v.], các quy tắc sau áp dụng cho việc lăn tiến và lùi

Khi

In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
431 không phải là 0, nếu ngày đã cho không nằm trên một điểm neo, nó sẽ chuyển sang điểm neo tiếp theo [trước đó] và di chuyển
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
432 thêm các bước tiến hoặc lùi

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
81

Nếu ngày đã cho nằm trên một điểm neo, nó sẽ được di chuyển _______3433 điểm về phía trước hoặc phía sau

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
82

Đối với trường hợp khi

In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
434, ngày không được di chuyển nếu trên một điểm neo, nếu không, nó sẽ được chuyển tới điểm neo tiếp theo

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
83

Ngày lễ / lịch nghỉ lễ#

Ngày lễ và lịch cung cấp một cách đơn giản để xác định các quy tắc ngày lễ sẽ được sử dụng với

In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
83 hoặc trong phân tích khác yêu cầu tập hợp các ngày lễ được xác định trước. Lớp
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
436 cung cấp tất cả các phương thức cần thiết để trả về danh sách các ngày lễ và chỉ cần xác định
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
437 trong một lớp lịch nghỉ lễ cụ thể. Hơn nữa, các thuộc tính lớp
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
412 và
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
413 xác định phạm vi ngày các ngày lễ được tạo. Chúng nên được ghi đè lên lớp
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
436 để có phạm vi áp dụng cho tất cả các lớp con lịch.
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
441 is the only calendar that exists and primarily serves as an example for developing other calendars

Đối với những ngày lễ diễn ra vào những ngày cố định [e. g. , Ngày tưởng niệm Hoa Kỳ hoặc ngày 4 tháng 7] một quy tắc tuân thủ xác định thời điểm lễ đó được thực hiện nếu nó rơi vào cuối tuần hoặc một số ngày không được tuân thủ khác. Các quy tắc tuân thủ được xác định là

Qui định

Description

ngày làm việc gần nhất

di chuyển Thứ Bảy đến Thứ Sáu và Chủ nhật đến Thứ Hai

chủ nhật_đến_thứ hai

chuyển Chủ Nhật sang Thứ Hai tuần sau

next_monday_or_tuesday

di chuyển Thứ Bảy đến Thứ Hai và Chủ Nhật/Thứ Hai đến Thứ Ba

trước_thứ sáu

chuyển Thứ Bảy và Chủ Nhật sang Thứ Sáu trước đó”

next_monday

chuyển thứ bảy và chủ nhật sang thứ hai tuần sau

Ví dụ về cách xác định ngày lễ và lịch nghỉ lễ

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
84

dấu

ngày trong tuần=MO[2] giống như 2 * Tuần[ngày trong tuần=2]

Sử dụng lịch này, việc tạo chỉ mục hoặc thực hiện phép tính bù trừ sẽ bỏ qua các ngày cuối tuần và ngày lễ [i. e. , Ngày tưởng niệm/ngày 4 tháng 7]. For example, the below defines a custom business day offset using the

In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
442. Like any other offset, it can be used to create a
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
83 or added to
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
08 or
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
82 objects

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
85

Ranges are defined by the

In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
412 and
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
413 class attributes of
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
436. The defaults are shown below

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
86

These dates can be overwritten by setting the attributes as datetime/Timestamp/string

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
87

Every calendar class is accessible by name using the

In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
449 function which returns a holiday class instance. Any imported calendar class will automatically be available by this function. Also,
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
450 provides an easy interface to create calendars that are combinations of calendars or calendars with additional rules

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
88

Time Series-related instance methods#

Shifting / lagging#

One may want to shift or lag the values in a time series back and forward in time. The method for this is

In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
451, which is available on all of the pandas objects

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
89

The

In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
06 method accepts an
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
93 argument which can accept a
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
98 class or other
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
09-like object or also an offset alias .

When

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
93 is specified,
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
06 method changes all the dates in the index rather than changing the alignment of the data and the index

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
90

Note that with when

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
93 is specified, the leading entry is no longer NaN because the data is not being realigned

Frequency conversion#

The primary function for changing frequencies is the

In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
459 method. For a
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
83, this is basically just a thin, but convenient wrapper around
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
461 which generates a
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
87 and calls
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
463

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
91

In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
464 provides a further convenience so you can specify an interpolation method for any gaps that may appear after the frequency conversion

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
92

Filling forward / backward#

Related to

In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
464 and
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
463 is
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
467, which is documented in the missing data section .

Converting to Python datetimes#

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
83 có thể được chuyển đổi thành một mảng các đối tượng
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
78 gốc của Python bằng cách sử dụng phương thức
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
470

Resampling#

pandas has a simple, powerful, and efficient functionality for performing resampling operations during frequency conversion [e. g. , converting secondly data into 5-minutely data]. This is extremely common in, but not limited to, financial applications

In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
471 is a time-based groupby, followed by a reduction method on each of its groups. See some cookbook examples for some advanced strategies.

The

In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
471 method can be used directly from
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
473 objects, see the groupby docs .

Basics#

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
93

The

In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
474 function is very flexible and allows you to specify many different parameters to control the frequency conversion and resampling operation

Bất kỳ chức năng nào có sẵn thông qua dispatching đều khả dụng dưới dạng một phương thức của đối tượng được trả về, bao gồm

In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
475,
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
476,
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
477,
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
478,
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
479,
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
480 .

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
94

For downsampling,

In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
485 can be set to ‘left’ or ‘right’ to specify which end of the interval is closed

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
95

Parameters like

In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
486 are used to manipulate the resulting labels.
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
486 specifies whether the result is labeled with the beginning or the end of the interval

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
96

Warning

The default values for

In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
486 and
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
485 is ‘left’ for all frequency offsets except for ‘M’, ‘A’, ‘Q’, ‘BM’, ‘BA’, ‘BQ’, and ‘W’ which all have a default of ‘right’

This might unintendedly lead to looking ahead, where the value for a later time is pulled back to a previous time as in the following example with the

In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
80 frequency

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
97

Notice how the value for Sunday got pulled back to the previous Friday. To get the behavior where the value for Sunday is pushed to Monday, use instead

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
98

The

In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
491 parameter can be set to 0 or 1 and allows you to resample the specified axis for a
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
03

In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
493 can be set to ‘timestamp’ or ‘period’ to convert the resulting index to/from timestamp and time span representations. By default
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
474 retains the input representation

In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
495 can be set to ‘start’ or ‘end’ when resampling period data [detail below]. It specifies how low frequency periods are converted to higher frequency periods

Upsampling#

For upsampling, you can specify a way to upsample and the

In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
496 parameter to interpolate over the gaps that are created

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
99

Sparse resampling#

Sparse timeseries are the ones where you have a lot fewer points relative to the amount of time you are looking to resample. Naively upsampling a sparse series can potentially generate lots of intermediate values. When you don’t want to use a method to fill these values, e. g.

In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
497 is
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
99, then intermediate values will be filled with
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
499

Since

In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
474 is a time-based groupby, the following is a method to efficiently resample only the groups that are not all
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
499

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
00

If we want to resample to the full range of the series

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
01

We can instead only resample those groups where we have points as follows

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
02

Aggregation#

Similar to the aggregating API , groupby API , and the window API , a

In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
702 can be selectively resampled.

Resampling a

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
03, the default will be to act on all columns with the same function

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
03

We can select a specific column or columns using standard getitem

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
04

You can pass a list or dict of functions to do aggregation with, outputting a

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
03

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
05

On a resampled

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
03, you can pass a list of functions to apply to each column, which produces an aggregated result with a hierarchical index

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
06

By passing a dict to

In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
706 you can apply a different aggregation to the columns of a
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
03

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
07

The function names can also be strings. Để một chuỗi hợp lệ, nó phải được triển khai trên đối tượng được lấy mẫu lại

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
08

Furthermore, you can also specify multiple aggregation functions for each column separately

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
09

If a

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
03 does not have a datetimelike index, but instead you want to resample based on datetimelike column in the frame, it can passed to the
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
709 keyword

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
10

Tương tự, thay vào đó, nếu bạn muốn lấy mẫu lại theo cấp độ giống như thời gian của

In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
23, tên hoặc vị trí của nó có thể được chuyển đến từ khóa
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
711

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
11

Iterating through groups#

Với đối tượng

In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
702 trong tay, việc lặp qua dữ liệu được nhóm là rất tự nhiên và hoạt động tương tự như
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
713

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
12

See Iterating through groups or

In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
714 for more.

Use
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
65 or
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
716 to adjust the start of the bins#

Mới trong phiên bản 1. 1. 0

The bins of the grouping are adjusted based on the beginning of the day of the time series starting point. This works well with frequencies that are multiples of a day [like

In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
717] or that divide a day evenly [like
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
718 or
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
719]. This can create inconsistencies with some frequencies that do not meet this criteria. To change this behavior you can specify a fixed Timestamp with the argument
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
65

For example

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
13

Here we can see that, when using

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
65 with its default value [
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
722], the result after
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
723 are not identical depending on the start of time series

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
14

Here we can see that, when setting

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
65 to
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
725, the result after
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
723 are identical depending on the start of time series

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
15

If needed you can use a custom timestamp for

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
65

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
16

If needed you can just adjust the bins with an

In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
716 Timedelta that would be added to the default
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
65. Those two examples are equivalent for this time series

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
17

Note the use of

In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
730 for
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
65 on the last example. In that case,
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
65 will be set to the first value of the timeseries

Backward resample#

New in version 1. 3. 0

Instead of adjusting the beginning of bins, sometimes we need to fix the end of the bins to make a backward resample with a given

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
93. The backward resample sets
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
485 to
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
735 by default since the last value should be considered as the edge point for the last bin

We can set

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
65 to
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
737. The value for a specific
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
82 index stands for the resample result from the current
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
82 minus
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
93 to the current
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
82 with a right close

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
18

Besides, in contrast with the

In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
722 option,
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
743 is supported. This will set the origin as the ceiling midnight of the largest
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
82

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
19

Kết quả trên sử dụng

In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
745 làm cạnh phải của thùng cuối cùng kể từ lần tính toán sau

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
20

Time span representation#

Regular intervals of time are represented by

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
93 objects in pandas while sequences of
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
93 objects are collected in a
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
94, which can be created with the convenience function
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
97

Period#

A

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
93 represents a span of time [e. g. , a day, a month, a quarter, etc]. You can specify the span via
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
93 keyword using a frequency alias like below. Because
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
93 represents a span of
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
93, it cannot be negative like “-3D”

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
21

Adding and subtracting integers from periods shifts the period by its own frequency. Arithmetic is not allowed between

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
93 with different
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
93 [span]

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
22

If

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
93 freq is daily or higher [
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
757,
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
758,
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
759,
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
760,
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
761,
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
762,
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
763],
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
764 and
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
09-like can be added if the result can have the same freq. Otherwise,
In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
91 will be raised

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
23

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
24

If

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
93 has other frequencies, only the same
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
764 can be added. Nếu không,
In [13]: friday = pd.Timestamp["2018-01-05"]

In [14]: friday.day_name[]
Out[14]: 'Friday'

# Add 1 day
In [15]: saturday = friday + pd.Timedelta["1 day"]

In [16]: saturday.day_name[]
Out[16]: 'Saturday'

# Add 1 business day [Friday --> Monday]
In [17]: monday = friday + pd.offsets.BDay[]

In [18]: monday.day_name[]
Out[18]: 'Monday'
91 sẽ được nâng lên

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
25

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
26

Taking the difference of

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
93 instances with the same frequency will return the number of frequency units between them

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
27

PeriodIndex and period_range#

Regular sequences of

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
93 objects can be collected in a
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
94, which can be constructed using the
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
97 convenience function

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
28

The

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
94 constructor can also be used directly

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
29

Passing multiplied frequency outputs a sequence of

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
93 which has multiplied span

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
30

If

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
90 or
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
91 are
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
93 objects, they will be used as anchor endpoints for a
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
94 with frequency matching that of the
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
94 constructor

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
31

Just like

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
83, a
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
94 can also be used to index pandas objects

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
32

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
94 supports addition and subtraction with the same rule as
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
93

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
33

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
94 has its own dtype named
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
786, refer to Period Dtypes .

Period dtypes#

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
94 has a custom
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
786 dtype. This is a pandas extension dtype similar to the timezone aware dtype [
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
85].

The

In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
786 dtype holds the
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
93 attribute and is represented with
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
95 like
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
793 or
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
794, using frequency strings .

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
34

The

In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
786 dtype can be used in
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
796. It allows one to change the
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
93 of a
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
94 like
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
799 and convert a
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
83 to
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
94 like
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
502

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
35

PeriodIndex partial string indexing#

PeriodIndex now supports partial string slicing with non-monotonic indexes

Mới trong phiên bản 1. 1. 0

You can pass in dates and strings to

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
02 and
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
03 with
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
94, in the same manner as
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
83. For details, refer to DatetimeIndex Partial String Indexing .

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
36

Passing a string representing a lower frequency than

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
94 returns partial sliced data

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
37

As with

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
83, the endpoints will be included in the result. The example below slices data starting from 10. 00 to 11. 59

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
38

Frequency conversion and resampling with PeriodIndex#

The frequency of

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
93 and
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
94 can be converted via the
In [1]: import datetime

In [2]: dti = pd.to_datetime[
   ...:     ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
   ...: ]
   ...: 

In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
464 method. Let’s start with the fiscal year 2011, ending in December

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
39

We can convert it to a monthly frequency. Using the

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
512 parameter, we can specify whether to return the starting or ending month

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
40

The shorthands ‘s’ and ‘e’ are provided for convenience

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
41

Converting to a “super-period” [e. g. , annual frequency is a super-period of quarterly frequency] automatically returns the super-period that includes the input period

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
42

Note that since we converted to an annual frequency that ends the year in November, the monthly period of December 2011 is actually in the 2012 A-NOV period

Period conversions with anchored frequencies are particularly useful for working with various quarterly data common to economics, business, and other fields. Many organizations define quarters relative to the month in which their fiscal year starts and ends. Thus, first quarter of 2011 could start in 2010 or a few months into 2011. Via anchored frequencies, pandas works for all quarterly frequencies

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
513 through
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
514

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
514 define regular calendar quarters

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
43

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
516 defines fiscal year end in March

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
44

Converting between representations#

Timestamped data can be converted to PeriodIndex-ed data using

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
517 and vice-versa using
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
518

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
45

Remember that ‘s’ and ‘e’ can be used to return the timestamps at the start or end of the period

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
46

Converting between period and timestamp enables some convenient arithmetic functions to be used. In the following example, we convert a quarterly frequency with year ending in November to 9am of the end of the month following the quarter end

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
47

Representing out-of-bounds spans#

If you have data that is outside of the

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
82 bounds, see Timestamp limitations , then you can use a
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
94 and/or
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
02 of
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
522 to do computations.

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
48

To convert from an

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
523 based YYYYMMDD representation

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
49

These can easily be converted to a

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
94

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
50

Time zone handling#

pandas provides rich support for working with timestamps in different time zones using the

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
525 and
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
81 libraries or
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
527 objects from the standard library

Working with time zones#

By default, pandas objects are time zone unaware

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
51

To localize these dates to a time zone [assign a particular time zone to a naive date], you can use the

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
528 method or the
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
71 keyword argument in
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
81,
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
82, or
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
83. You can either pass
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
525 or
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
81 time zone objects or Olson time zone database strings. Olson time zone strings will return
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
525 time zone objects by default. To return
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
81 time zone objects, append
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
537 before the string

  • In

    In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]
    
    In [5]: dti
    Out[5]: 
    DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
                   '2018-01-01 02:00:00'],
                  dtype='datetime64[ns]', freq='H']
    
    525 you can find a list of common [and less common] time zones using
    In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]
    
    In [5]: dti
    Out[5]: 
    DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
                   '2018-01-01 02:00:00'],
                  dtype='datetime64[ns]', freq='H']
    
    539

  • In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]
    
    In [5]: dti
    Out[5]: 
    DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
                   '2018-01-01 02:00:00'],
                  dtype='datetime64[ns]', freq='H']
    
    81 uses the OS time zones so there isn’t a fixed list available. Đối với các khu vực chung, tên giống như
    In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]
    
    In [5]: dti
    Out[5]: 
    DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
                   '2018-01-01 02:00:00'],
                  dtype='datetime64[ns]', freq='H']
    
    525

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
52

Mới trong phiên bản 0. 25. 0

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
53

Note that the

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
542 time zone is a special case in
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
81 and should be constructed explicitly as an instance of
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
544. You can also construct other time zones objects explicitly first

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
54

To convert a time zone aware pandas object from one time zone to another, you can use the

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
545 method

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
55

Ghi chú

When using

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
525 time zones,
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
83 will construct a different time zone object than a
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
82 for the same time zone input. A
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
83 can hold a collection of
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
82 objects that may have different UTC offsets and cannot be succinctly represented by one
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
525 time zone instance while one
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
82 represents one point in time with a specific UTC offset

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
56

Warning

Be wary of conversions between libraries. For some time zones,

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
525 and
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
81 have different definitions of the zone. This is more of a problem for unusual time zones than for ‘standard’ zones like
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
555

Warning

Be aware that a time zone definition across versions of time zone libraries may not be considered equal. This may cause problems when working with stored data that is localized using one version and operated on with a different version. See here for how to handle such a situation.

Warning

For

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
525 time zones, it is incorrect to pass a time zone object directly into the
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
78 constructor [e. g. ,
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
558. Instead, the datetime needs to be localized using the
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
559 method on the
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
525 time zone object

Warning

Be aware that for times in the future, correct conversion between time zones [and UTC] cannot be guaranteed by any time zone library because a timezone’s offset from UTC may be changed by the respective government

Warning

If you are using dates beyond 2038-01-18, due to current deficiencies in the underlying libraries caused by the year 2038 problem, daylight saving time [DST] adjustments to timezone aware dates will not be applied. If and when the underlying libraries are fixed, the DST transitions will be applied

For example, for two dates that are in British Summer Time [and so would normally be GMT+1], both the following asserts evaluate as true

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
57

Under the hood, all timestamps are stored in UTC. Values from a time zone aware

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
83 or
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
82 will have their fields [day, hour, minute, etc. ] localized to the time zone. However, timestamps with the same UTC value are still considered to be equal even if they are in different time zones

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
58

Operations between

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
02 in different time zones will yield UTC
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
02, aligning the data on the UTC timestamps

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
59

To remove time zone information, use

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
565 or
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
566.
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
565 will remove the time zone yielding the local time representation.
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
566 will remove the time zone after converting to UTC time

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
60

Fold#

Mới trong phiên bản 1. 1. 0

For ambiguous times, pandas supports explicitly specifying the keyword-only fold argument. Due to daylight saving time, one wall clock time can occur twice when shifting from summer to winter time; fold describes whether the datetime-like corresponds to the first [0] or the second time [1] the wall clock hits the ambiguous time. Fold is supported only for constructing from naive

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
78 [see datetime documentation for details] or from
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
82 or for constructing from components [see below]. Only
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
81 timezones are supported [see dateutil documentation for
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
81 methods that deal with ambiguous datetimes] as
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
525 timezones do not support fold [see pytz documentation for details on how
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
525 deals with ambiguous datetimes]. To localize an ambiguous datetime with
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
525, please use
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
576. In general, we recommend to rely on
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
576 when localizing ambiguous datetimes if you need direct control over how they are handled

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
61

Ambiguous times when localizing#

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
528 may not be able to determine the UTC offset of a timestamp because daylight savings time [DST] in a local time zone causes some times to occur twice within one day [“clocks fall back”]. The following options are available

  • In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]
    
    In [5]: dti
    Out[5]: 
    DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
                   '2018-01-01 02:00:00'],
                  dtype='datetime64[ns]', freq='H']
    
    579. Raises a
    In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]
    
    In [5]: dti
    Out[5]: 
    DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
                   '2018-01-01 02:00:00'],
                  dtype='datetime64[ns]', freq='H']
    
    580 [the default behavior]

  • In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]
    
    In [5]: dti
    Out[5]: 
    DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
                   '2018-01-01 02:00:00'],
                  dtype='datetime64[ns]', freq='H']
    
    581. Attempt to determine the correct offset base on the monotonicity of the timestamps

  • In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]
    
    In [5]: dti
    Out[5]: 
    DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
                   '2018-01-01 02:00:00'],
                  dtype='datetime64[ns]', freq='H']
    
    582. Replaces ambiguous times with
    In [6]: dti = dti.tz_localize["UTC"]
    
    In [7]: dti
    Out[7]: 
    DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
                   '2018-01-01 02:00:00+00:00'],
                  dtype='datetime64[ns, UTC]', freq='H']
    
    In [8]: dti.tz_convert["US/Pacific"]
    Out[8]: 
    DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
                   '2017-12-31 18:00:00-08:00'],
                  dtype='datetime64[ns, US/Pacific]', freq='H']
    
    13

  • In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]
    
    In [5]: dti
    Out[5]: 
    DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
                   '2018-01-01 02:00:00'],
                  dtype='datetime64[ns]', freq='H']
    
    584.
    In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]
    
    In [5]: dti
    Out[5]: 
    DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
                   '2018-01-01 02:00:00'],
                  dtype='datetime64[ns]', freq='H']
    
    585 đại diện cho thời gian DST,
    In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]
    
    In [5]: dti
    Out[5]: 
    DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
                   '2018-01-01 02:00:00'],
                  dtype='datetime64[ns]', freq='H']
    
    586 đại diện cho thời gian không phải DST. An array-like of
    In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]
    
    In [5]: dti
    Out[5]: 
    DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
                   '2018-01-01 02:00:00'],
                  dtype='datetime64[ns]', freq='H']
    
    584 values is supported for a sequence of times

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
62

This will fail as there are ambiguous times [

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
588]

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
63

Handle these ambiguous times by specifying the following

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
64

Nonexistent times when localizing#

A DST transition may also shift the local time ahead by 1 hour creating nonexistent local times [“clocks spring forward”]. The behavior of localizing a timeseries with nonexistent times can be controlled by the

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
589 argument. The following options are available

  • In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]
    
    In [5]: dti
    Out[5]: 
    DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
                   '2018-01-01 02:00:00'],
                  dtype='datetime64[ns]', freq='H']
    
    579. Raises a
    In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]
    
    In [5]: dti
    Out[5]: 
    DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
                   '2018-01-01 02:00:00'],
                  dtype='datetime64[ns]', freq='H']
    
    591 [the default behavior]

  • In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]
    
    In [5]: dti
    Out[5]: 
    DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
                   '2018-01-01 02:00:00'],
                  dtype='datetime64[ns]', freq='H']
    
    582. Thay thế thời gian không tồn tại bằng
    In [6]: dti = dti.tz_localize["UTC"]
    
    In [7]: dti
    Out[7]: 
    DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
                   '2018-01-01 02:00:00+00:00'],
                  dtype='datetime64[ns, UTC]', freq='H']
    
    In [8]: dti.tz_convert["US/Pacific"]
    Out[8]: 
    DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
                   '2017-12-31 18:00:00-08:00'],
                  dtype='datetime64[ns, US/Pacific]', freq='H']
    
    13

  • In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]
    
    In [5]: dti
    Out[5]: 
    DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
                   '2018-01-01 02:00:00'],
                  dtype='datetime64[ns]', freq='H']
    
    594. Shifts nonexistent times forward to the closest real time

  • In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]
    
    In [5]: dti
    Out[5]: 
    DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
                   '2018-01-01 02:00:00'],
                  dtype='datetime64[ns]', freq='H']
    
    595. Shifts nonexistent times backward to the closest real time

  • timedelta object. Shifts nonexistent times by the timedelta duration

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
65

Localization of nonexistent times will raise an error by default

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
66

Transform nonexistent times to

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
13 or shift the times

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
67

Múi giờ Chuỗi hoạt động#

A

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
02 with time zone naive values is represented with a dtype of
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
84

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
68

A

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
02 with a time zone aware values is represented with a dtype of
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
85 where
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
71 is the time zone

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
69

Both of these

In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
02 time zone information can be manipulated via the
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"]

In [10]: ts = pd.Series[range[len[idx]], index=idx]

In [11]: ts
Out[11]: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4
Freq: H, dtype: int64

In [12]: ts.resample["2H"].mean[]
Out[12]: 
2018-01-01 00:00:00    0.5
2018-01-01 02:00:00    2.5
2018-01-01 04:00:00    4.0
Freq: 2H, dtype: float64
52 accessor, see the dt accessor section .

For example, to localize and convert a naive stamp to time zone aware

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
70

Time zone information can also be manipulated using the

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
804 method. This method can convert between different timezone-aware dtypes

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
71

Ghi chú

Using

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
805 on a
In [6]: dti = dti.tz_localize["UTC"]

In [7]: dti
Out[7]: 
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
               '2018-01-01 02:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq='H']

In [8]: dti.tz_convert["US/Pacific"]
Out[8]: 
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
               '2017-12-31 18:00:00-08:00'],
              dtype='datetime64[ns, US/Pacific]', freq='H']
02, returns a NumPy array of the data. NumPy does not currently support time zones [even though it is printing in the local time zone. ], do đó, một mảng đối tượng Dấu thời gian được trả về cho dữ liệu nhận biết múi giờ

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
72

By converting to an object array of Timestamps, it preserves the time zone information. For example, when converting back to a Series

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
73

However, if you want an actual NumPy

In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
84 array [with the values converted to UTC] instead of an array of objects, you can specify the
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]

In [5]: dti
Out[5]: 
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00'],
              dtype='datetime64[ns]', freq='H']
808 argument

Chủ Đề