Gandas chứa các khả năng và tính năng rộng lớn để làm việc với dữ liệu chuỗi thời gian cho tất cả các miền. Sử dụng 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 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']72, Pandas đã củng cố một số lượng lớn các tính năng từ các thư viện Python khác 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']73 cũng như tạo ra một số lượng lớn chức năng mới để thao tác dữ liệu chuỗi thời gian.
Ví dụ: Pandas hỗ trợ:
Thông tin chuỗi thời gian phân tích từ các nguồn và định dạng khác nhau
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]
Tạo chuỗi các ngày và thời gian tần số cố đị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']
Thao tác và chuyển đổi thời gian ngày với thông tin 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']
Lấy mẫu lại hoặc chuyển đổi chuỗi thời gian thành một tần số 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
Thực hiện số học ngày và thời gian với số thời gian tuyệt đối hoặc tương đố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'
Pandas cung cấp một bộ công cụ tương đối nhỏ gọn và khép kín để thực hiện các tác vụ trên và hơn thế nữa.
Overview#
Pandas nắm bắt 4 khái niệm liên quan đến thời gian chung:
Thời gian ngày: Một ngày và giờ cụ thể với hỗ trợ Timezone. Tương tự 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']
74 từ thư viện tiêu chuẩn.Deltas thời gian: Một thời gian tuyệt đối. Tương tự 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']
75 từ thư viện tiêu chuẩn.Thời gian kéo dài: Một khoảng thời gian được xác định bởi một thời điểm và tần số liên quan của nó.
Ngày bù đắp: Thời gian thời gian tương đối tôn trọng số học lịch. Tương tự 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']
76 từ góiIn [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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.
Thời gian hẹn hò | In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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 | In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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 | In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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 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']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 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 |
Deltas 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']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']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 | In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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 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']88 |
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']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 | In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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 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']93 |
Ngày bù đắ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']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']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']94 |
Đối với dữ liệu chuỗi thời gian, thông thường của nó để thể hiện thành phần thời gian trong chỉ số 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']98 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']99 để có thể thực hiện các thao tác đối với phần tử thời gian.
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int64
Tuy nhiê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']98 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']99 cũng có thể trực tiếp hỗ trợ thành phần thời gian dưới dạng dữ liệu.
In [20]: pd.Series[pd.date_range["2000", freq="D", periods=3]] Out[20]: 0 2000-01-01 1 2000-01-02 2 2000-01-03 dtype: datetime64[ns]
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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à
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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 có hỗ trợ và chức năng kiểu dữ liệu mở rộng cho dữ liệ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']04,
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']05 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']89 khi được truyền vào các hàm tạo đó. Tuy nhiên, dữ liệu
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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 sẽ được lưu trữ dưới dạng dữ liệ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']08.
In [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]
Cuối cùng, gấu trúc đại diện cho thời gian ngày null, thời gian đồng bằng và thời gian kéo dài dưới 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']09, rất hữu ích cho việc biểu diễn ngày bị thiếu hoặc null như các giá trị và hoạt động tương tự 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']10 đối với dữ liệu nổi.
In [24]: pd.Timestamp[pd.NaT] Out[24]: NaT In [25]: pd.Timedelta[pd.NaT] Out[25]: NaT In [26]: pd.Period[pd.NaT] Out[26]: NaT # Equality acts as np.nan would In [27]: pd.NaT == pd.NaT Out[27]: False
Dấu thời gian so với thời gian kéo dài#
Dữ liệu theo thời gian là loại dữ liệu chuỗi thời gian cơ bản nhất liên kết các giá trị theo thời gian. Đối với các đối tượng gấu trúc, nó có nghĩa là sử dụng các thời điểm.
In [28]: pd.Timestamp[datetime.datetime[2012, 5, 1]] Out[28]: Timestamp['2012-05-01 00:00:00'] In [29]: pd.Timestamp["2012-05-01"] Out[29]: Timestamp['2012-05-01 00:00:00'] In [30]: pd.Timestamp[2012, 5, 1] Out[30]: Timestamp['2012-05-01 00:00:00']
Tuy nhiên, trong nhiều trường hợp, việc liên kết những thứ như biến thay đổi với khoảng thời gian là điều tự nhiên hơn. Khoảng thời gian được biểu thị bằ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']89 có thể được chỉ định rõ ràng hoặc được suy ra từ định dạng chuỗi DateTime.
Ví dụ:
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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']78 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']89 có thể đóng vai trò là một chỉ số. Danh sách 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']78 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']89 được tự động ép buộc lần lượt bị ép buộc và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']79 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']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']1
Gandas cho phép bạn nắm bắt cả hai biểu diễn và chuyển đổi giữa chúng. Dưới mui xe, Pandas đại diện cho dấu thời gian bằng cách sử dụng các trường hợ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']78 và các chuỗi dấu thời gian bằng cách sử dụng các trường hợ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']79. Đối với các khoảng thời gian thường xuyên, Pandas sử dụ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']89 cho các giá trị vô hướng 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']90 cho các chuỗi nhịp. Hỗ trợ tốt hơn cho các khoảng không đều với điểm khởi đầu và điểm cuối tùy ý đang xuất hiện trong các bản phát hành trong tương lai.
Chuyển đổi thành dấu thời gian#
Để chuyển đổi đố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 hoặc giống như danh sách của các đối tượng giống như ngày, ví dụ: Chuỗi, kỷ nguyên hoặc hỗn hợp, bạn có thể sử dụng 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']82. Khi được thông qua
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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, điều này sẽ trả 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']98 [có cùng một chỉ mục], trong khi giống như danh sách được chuyển đổi 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']79:
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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
Nếu bạn sử dụng ngày bắt đầu với ngày đầu tiên [tức là kiểu châu Âu], bạn có thể vượt qua 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']27:
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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
Cảnh báo
Bạn thấy trong ví dụ trên rằ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']27 không nghiêm ngặt. Nếu một ngày có thể được phân tích cú pháp với ngày đầu tiên, nó sẽ được phân tích cú pháp như thể
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']27 là sai, và trong trường hợp phân tích các chuỗi ngày được phân định [ví dụ:
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']30] thì một cảnh báo cũng sẽ được nêu ra.
Nếu bạn chuyển một chuỗi duy nhất 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']82, nó sẽ trả về 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']78.
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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 cũng có thể chấp nhận đầu vào chuỗi, nhưng nó không chấp nhận các tùy chọn phân tích cú pháp chuỗi 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']27 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']35, vì vậy hãy sử dụ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 nếu chúng được yêu cầu.
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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
Bạn cũng có thể sử dụng Trình xây dự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']79 trực tiế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']5
Chuỗi ‘suy luận có thể được truyền để đặt tần số của chỉ mục là tần số được suy ra khi 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']6
Cung cấp một đối số định dạng#
Ngoài chuỗi DateTime cần thiết, một đố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']35 có thể được thông qua để đảm bảo phân tích cú pháp cụ thể. Điều này cũng có khả năng tăng tốc độ chuyển đổi đáng kể.
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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
Để biết thêm thông tin về các lựa chọn có sẵn khi chỉ định tùy chọ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']35, hãy xem tài liệu DateTime Python.
Lắp ráp DateTime từ nhiều cột DataFrame#
Bạn cũng có thể vượt qua
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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 của các cột số nguyên hoặc chuỗi để lắp ráp 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']98 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']42.
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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']43 Tìm kiếm các chỉ định tiêu chuẩn của thành phần DateTime 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']
44,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']
45,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']
46Tùy chọ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']
47,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,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
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']53, là nâng cao khi không thể ghi lạ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']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']54 để trả về đầu vào ban đầu khi không thể ghi nhậ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']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']55 để chuyển đổi dữ liệu không thể ghi lại 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']09 [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
Thời gian thời gian sử dụng#
Gấu trúc hỗ trợ chuyển đổi số nguyên hoặc thời gian nổi của 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']78 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']79. Đơ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']78 đượ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']60 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']61.
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']60 không sử dụng cùng một chuỗi vớ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']35 đã đượ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']64.above]. The available units are listed on the documentation 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']64.
Đã 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']78 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']79 với dấu thời gian kỷ nguyên 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']67 được chỉ định sẽ tăng giá trị. Nếu bạn có kỷ nguyên trong thời gian tường trong một múi giờ khác, bạn có thể đọc các kỷ nguyên dưới dạng dấu thời gian ngây thơ theo thời gian và sau đó định vị vào 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ú
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']60 không sử dụng cùng một chuỗi vớ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']35 đã đượ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']64.
Đã 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']78 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']79 với dấu thời gian kỷ nguyên 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']67 được chỉ định sẽ tăng giá trị. Nếu bạn có kỷ nguyên trong thời gian tường trong một múi giờ khác, bạn có thể đọc các kỷ nguyên dưới dạng dấu thời gian ngây thơ theo thời gian và sau đó định vị vào múi giờ thích hợp:Python floats have about 15 digits precision in decimal. Rounding during conversion from float to high precision
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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 is unavoidable. The only way to achieve exact precision is to use a fixed-width types [e.g. an 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
Thời đại kỷ nguyên sẽ được làm tròn đến nano giây gần nhất.
Cảnh báo
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
Chuyển đổi thời gian Epoch nổi có thể dẫn đến kết quả không chính xác và bất ngờ. Phao Python có độ chính xác khoảng 15 chữ số trong thập phân. Làm tròn trong quá trình chuyển đổi từ phao 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']78 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 một loại chiều rộng cố định [ví dụ: 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']7
Từ dấu thời gian đến kỷ nguyên#
Để đảo ngược hoạt động từ 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']78 sang một 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']8
Chúng tôi trừ đi kỷ nguyên [nửa đêm lúc 1 tháng 1 năm 1970 UTC] và sau đó phân chia sàn cho đơn vị trực tuyến [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']9
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']
61#
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']61, người ta có thể chỉ định điểm bắt đầu thay thế để 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']79. Ví dụ: sử dụng 1960-01-01 làm ngày 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: float640
Mặc định được đặt tạ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']73, 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']74. Thường được gọi là ‘Unix Epoch, hoặc thời gian POSIX.calendar day while the default 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']81 is a business day:
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: float641
Tạo ra phạm vi dấu thời gian#frequency aliases:
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: float642
Để tạo một 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']79 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']76 và truyền trong danh sách các đối tượng DateTime:
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: float643
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ỉ số 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 trên tần số 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']77 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']78 để 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']79. 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']83 là một ngày 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']81 là một 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: float644
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']
83 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']
81 có thể sử dụng nhiều bí danh 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 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']81 giúp dễ dàng tạo ra một phạm vi ngày sử dụng các kết hợp các 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']86,
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']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']88 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']89. Ngày bắt đầu và kết thúc được bao gồm nghiêm ngặt, vì vậy ngày bên ngoài những ngày được chỉ định sẽ không được tạo 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: float645
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']
86, 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']
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']
88 sẽ tạo ra một loạt các 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']
86 đế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']
87, với số lượng phần tử trong số các phần tử trong kết quả In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]
In [5]: dti
Out[5]:
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:
Phạm vi tần số 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: float646
Indexing#
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 cũng có thể tạo ra một loạt các ngày tần số tùy chỉnh bằng cách sử dụng các 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']98 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']99. Các tham số này sẽ chỉ được sử dụng nếu chuỗi tần số tùy chỉnh được truyền.
Một loạt các ngày cho các độ lệch khác nhau được tính toán sẵn và được lưu trữ dưới mui xe để 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 cắt].
Chuyển nhanh bằng phương phá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
02 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']
79 chồng chéo có cùng tần số rất nhanh [quan trọng đối với căn chỉnh dữ liệu nhanh].Truy cập nhanh vào các trường ngày 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']
44,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']
45, 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
06 và logicIn [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
07 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']79 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']76 thông thường và một smorgasbord của các phương pháp cụ thể chuỗi thời gian tiên tiến để xử lý tần số dễ dàng.
Ghi chú
Mặc dù gấu trúc không buộc bạn phải có chỉ số ngày được sắp xếp, một số phương pháp này có thể có hành vi bất ngờ hoặc không chính xác nếu ngày không được phân loạ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']79 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: float647
Lập chỉ mục chuỗi một phần#
Ngày và chuỗi phân tích thời gian có thể được truyền dưới dạng 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: float648
Để cung cấp sự tiện lợi cho việc truy cập chuỗi thời gian dài hơn, bạn cũng có thể vượt qua trong 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: float649
Loại cắt lát này cũng sẽ hoạt động trê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']99 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']79. Vì lựa chọn chuỗi một phần là một hình thức cắt nhãn, các điểm cuối sẽ được bao gồm. Điều này sẽ bao gồm thời gian phù hợp vào một ngày bao gồm:will be included. This would include matching times on an included date:
Cảnh báo
Lập chỉ mụ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']99 Các hàng có một chuỗi duy nhất với getItem [ví dụ:
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: float6414] không được khởi động với Pandas 1.2.0 [với sự mơ hồ cho dù nó đang lập chỉ mục các hàng hoặc chọn cột] và sẽ bị xóa trong phiên bản trong 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: float6415 [ví dụ:
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: float6416] vẫn được hỗ trợ.
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 từ 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ả các lần vào ngày cuối cùng:that includes all of the times on the last day:
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]:exact stop time [and is not the same as the above]:
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 lại ở đ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
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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 Lập chỉ mục chuỗi một phần cũng hoạt động trê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']99 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: float6419:
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 với lập chỉ mục chuỗi cũng tôn vinh UTC Offset.
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 so với khớp chính 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 là một 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ỉ số, nó sẽ được coi là một lát cắt, nếu không là một kết hợp chính xác.
Xem xét 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ớ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
Một chuỗi dấu thời gian kém chính xác hơn một phút cho 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.
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 với độ phân giải phút [hoặc chính xác hơn], thay vào đó là vô hướng, tức là nó không được đúc thành một lát cắ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ỉ số là thứ hai, thì dấu thời gian chính xác phút 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']98.
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int640
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
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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 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: float6424.
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int641
Cảnh báo
Lập chỉ mụ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']99 Các hàng có một chuỗi duy nhất với getItem [ví dụ:
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: float6414] không được khởi động với Pandas 1.2.0 [với sự mơ hồ cho dù nó đang lập chỉ mục các hàng hoặc chọn cột] và sẽ bị xóa trong phiên bản trong 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: float6415 [ví dụ:
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: float6416] vẫn được hỗ trợ.Indexing Basics. 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: float6427 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: float6428 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: float6429 has the same resolution as the index and there is no column with such name:
Điều này bắt đầu từ lần đầu tiên trong tháng và bao gồm ngày và giờ cuối cùng trong tháng:
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int642
Điều này chỉ định thời gian dừng bao gồm tất cả các lần vào ngày cuối cùng:
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int643
Điều này chỉ định thời gian dừng chính xác [và không giống như ở trên]:
Chúng tôi đang dừng lại ở điểm cuối được bao gồm vì nó là một phần của chỉ mụ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']79 Lập chỉ mục chuỗi một phần cũng hoạt động trê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']99 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: float6419:
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int644
Mới trong phiên bản 0.25.0.
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int645
Cắt với lập chỉ mục chuỗi cũng tôn vinh UTC Offset.
Lát so với khớp chính xác#
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int646
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 là một 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ỉ số, nó sẽ được coi là một lát cắt, nếu không là một kết hợp chính xác.
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int647
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']78 hoặc một bộ sưu tập 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']79.
năm | Năm của DateTime |
tháng | Tháng của DateTime |
ngày | Những ngày của DateTime |
giờ | Giờ của DateTime |
phút | Biên bản của DateTime |
thứ hai | Những giây của DateTime |
Microsecond | Các micro giây của DateTime |
NanoSecond | Các nano giây của DateTime |
ngày | Returns dateTime.date [không chứa thông tin múi giờ] |
thời gian | Returns dateTime.time [không chứa thông tin thời gian] |
Thời gian biểu | Trả về DateTime. Thời gian như giờ địa phương với thông tin về thời gian |
Dayofyear | Ngày thứ tự trong năm |
day_of_year | Ngày thứ tự trong năm |
Tuần lễ | Tuần thứ tư của năm |
tuần | Tuần thứ tư của năm |
tuần | ngày trong tuần |
day_of_week | ngày trong tuần |
Số lượng ngày trong tuần với Thứ Hai = 0, Chủ nhật = 6 | ngày trong tuần |
Số lượng ngày trong tuần với Thứ Hai = 0, Chủ nhật = 6 | Ngày trong tuần |
days_in_month | phần tư |
is_month_start | Một phần tư ngày: Jan-Mar = 1, Apr-Jun = 2, v.v. |
is_month_end | Số ngày trong tháng của DateTime |
is_quarter_start | Cho biết logic nếu ngày đầu tiên của tháng [được xác định bởi tần số] |
is_quarter_end | Cho biết logic nếu ngày cuối cùng của tháng [được xác định bởi tần số] |
is_year_start | Cho biết logic nếu ngày đầu tiên của quý [được xác định bởi tần số] |
is_year_end | Chỉ định logic nếu ngày cuối cùng của quý [được xác định bởi tần số] |
is_leap_year | Chỉ định logic nếu ngày đầu tiên của năm [được xác định bởi tần số] |
Chỉ định logic nếu ngày cuối cùng của năm [được xác định bởi tần số].dt accessors.
Cho biết logic nếu ngày thuộc về một năm bước nhảy
Hơn nữa, nếu bạn 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']98 với các giá trị datetimelike, 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: float6448, như được trình bày chi tiết trong phần trên .DT Accessions.
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int648
Mới trong phiên bản 1.1.0.
Bạn có thể có được 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:
Đối tượng Date Offerset#
Trong các ví dụ trước, chuỗi tần số [ví dụ:
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
49] đã được sử dụng để chỉ định tần số được xác định:
Thời gian hẹn hò 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']79 đã được đặt cách nhau như thế nào 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']77
Tần số 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']89 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']90
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int649
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']94 và các lớp con của nó. 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 tương tự 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']84 đại diện cho một thời gian nhưng tuân theo các quy tắc thời lượng lịch cụ thể. Ví dụ, một 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']84 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: float6458 sau 24 giờ, trong khi một 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']94 sẽ tăng lê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: float6458 đến cùng thời điểm vào ngày hôm sau cho dù một ngày đại diện cho 23, 24 hoặc 25 giờ do thời gian tiết kiệm ánh sáng ban ngày. Tuy nhiên, tất cả các lớp con
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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 là 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: float6462,
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: float6463,
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: float6464,
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: float6465,
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: float6466,
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: float6467] hoạt độ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']84 và tôn trọng thời gian tuyệt đố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']94 | Bù ngày | Chuỗi tần số |
Không 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: float6477 | 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: float6475 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: float6476 | 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: float6480 | Ngày làm việc [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: float6481 | 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: float6482 | 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: float6478 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: float6479 |
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: float6483 | 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: float6484 | 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: float6485 | 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: float6486 | 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: float6487 | 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: float6488 | ngày x của tuần thứ năm của 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: float6489 | 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: float6490 | ngày x của tuần cuối cùng của mỗi tháng |
Lịch tháng kết 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: float6493 | Tháng dương 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: float6491 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: float6492 | 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: float6496 | Tháng kinh doanh kết 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: float6494 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: float6495 | 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: float6499 | Tháng làm việc 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: float6497 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: float6498 | 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 | Tháng làm việc tùy chỉnh kết thú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'03 | 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 | 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 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'01 |
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 làm việc 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 | 15th [hoặc day_of_month khác] và cuối tháng lịch kết thú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'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 | 15th [hoặc day_of_month khác] và tháng 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 kết thúc 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 | Quý 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'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 | kết thúc quý doanh nghiệ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'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 | Khu phố 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'19 | Bán lẻ [AKA 52-53 tuần] quý | Lịch cuối năm kết thú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'22 | 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'20 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'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'24 | 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 | 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'28 | 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'29 | 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 | 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'31 | 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 | 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'33 | 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: float6449 | 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: float6462 | 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 | 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: float6463 | 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'38 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'39 | một phú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: float6464 | 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'41 | 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: float6465 | 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 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'44 | Một mili 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: float6466 | 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'46 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'47 | Một micro 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: float6467 | 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'49 | Một nano 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: float6472 Ngoài ra còn có các phương thứ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 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'52 để di chuyển một ngày về phía trước hoặc lùi tương ứng sang ngày bù hợp lệ so với phần bù. Ví dụ, các khoản bù đắp kinh doanh sẽ diễn ra ngày hạ cánh vào cuối tuần [thứ bảy và chủ nhật] chuyển sang thứ Hai kể từ khi các khoản bù đắp kinh doanh hoạt động vào các ngày trong tuần.
In [20]: pd.Series[pd.date_range["2000", freq="D", periods=3]] Out[20]: 0 2000-01-01 1 2000-01-02 2 2000-01-03 dtype: datetime64[ns]0
Các hoạt động này lưu giữ thông tin thời gian [giờ, phút, v.v.] theo mặc định. Để đặt lại thời gian đến 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'53 trước hoặc sau khi áp dụng thao tác [tùy thuộc vào việc bạn muốn thông tin thời gian có trong hoạt động].
In [20]: pd.Series[pd.date_range["2000", freq="D", periods=3]] Out[20]: 0 2000-01-01 1 2000-01-02 2 2000-01-03 dtype: datetime64[ns]1
Tham số offset#
Một số độ lệch có thể được tham số hóa trên mạng khi được tạo ra để dẫn đến các hành vi khác nhau. Ví dụ: độ lệ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: float6481 để 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'55 dẫn đến các ngày được tạo luôn nằm vào một ngày cụ thể trong tuần:
In [20]: pd.Series[pd.date_range["2000", freq="D", periods=3]] Out[20]: 0 2000-01-01 1 2000-01-02 2 2000-01-03 dtype: datetime64[ns]2
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'56 sẽ có hiệu lực để bổ sung và trừ.
In [20]: pd.Series[pd.date_range["2000", freq="D", periods=3]] Out[20]: 0 2000-01-01 1 2000-01-02 2 2000-01-03 dtype: datetime64[ns]3
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'17 với tháng kết thúc cụ thể:
In [20]: pd.Series[pd.date_range["2000", freq="D", periods=3]] Out[20]: 0 2000-01-01 1 2000-01-02 2 2000-01-03 dtype: datetime64[ns]4
Sử dụng độ lệch 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']
98 / ________ 179#
Offsets có thể được sử dụng 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']98 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']79 để áp dụng phần bù cho mỗi phần tử.
In [20]: pd.Series[pd.date_range["2000", freq="D", periods=3]] Out[20]: 0 2000-01-01 1 2000-01-02 2 2000-01-03 dtype: datetime64[ns]5
Nếu lớp bù ánh xạ trực tiếp đế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']84 [
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 [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: float6462,
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: float6463,
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: float6464,
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: float6466,
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: float6465,
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: float6467] nó có thể được sử dụng chính xác 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']84 - xem phần Thời gianTimedelta section for more examples.
In [20]: pd.Series[pd.date_range["2000", freq="D", periods=3]] Out[20]: 0 2000-01-01 1 2000-01-02 2 2000-01-03 dtype: datetime64[ns]6
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'11] không có triển khai vector hóa. 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'72
In [20]: pd.Series[pd.date_range["2000", freq="D", periods=3]] Out[20]: 0 2000-01-01 1 2000-01-02 2 2000-01-03 dtype: datetime64[ns]7
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: float6478 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: float6479 cung cấp một 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: float6476 có thể được sử dụng để tạo lịch Ngày làm việc tùy chỉnh, chiếm các ngày lễ địa phương và các hội nghị cuối tuần địa phương.
Như một ví dụ thú vị, hãy để Lôi nhìn vào Ai Cập nơi quan sát thấy một ngày cuối tuần thứ sáu thứ sáu.
In [20]: pd.Series[pd.date_range["2000", freq="D", periods=3]] Out[20]: 0 2000-01-01 1 2000-01-02 2 2000-01-03 dtype: datetime64[ns]8
Hãy để bản đồ đến tên ngày trong tuần:
In [20]: pd.Series[pd.date_range["2000", freq="D", periods=3]] Out[20]: 0 2000-01-01 1 2000-01-02 2 2000-01-03 dtype: datetime64[ns]9
Lịch ngày lễ có thể được sử dụng để cung cấp danh sách các ngày lễ. Xem phần Lịch ngày lễ để biết thêm thông tin.holiday calendar section for more information.
In [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]0
Các khoản bù vào hàng tháng tôn trọng một lịch kỳ nghỉ nhất định có thể được định nghĩa theo cách thông thường.
In [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]1
Ghi chú
Chuỗi tần số ’C, được sử dụng để chỉ ra rằng ngày Day OfferOffset CustomBusinessDay được sử dụng, điều quan trọng cần lưu ý là vì CustomBusinessDay là loại tham số hóa, các trường hợp của CustomBusinessDay có thể khác nhau và điều này không thể phát hiện được với chuỗi tần số. Do đó, người dùng cần đảm bảo rằng chuỗi tần số ‘C được sử dụng một cách nhất quán trong ứng dụng của người dùng.
Giờ làm việc#
Lớ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'29 cung cấp một đại diện giờ làm việc trê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: float6476, 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'29 sử dụng 9:00 - 17:00 làm 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'29 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']78 theo tần suất hàng giờ. Nếu 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']78 hết giờ làm việc, hãy chuyển sang giờ làm việc tiếp theo sau đó tăng lên. Nếu kết quả vượt quá giờ làm việc, giờ còn lại sẽ được thêm vào ngày làm việc tiếp theo.
In [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]2
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']86 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']87 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'84 với biểu 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'85 hoặc một ví dụ
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'86. Chỉ định giây, micro giây và nano giây là giờ làm việc dẫn đế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'87.
In [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]3
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']86 thời gian muộn hơ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']87 đại diện cho giờ làm việc vào nửa đêm. Trong trường hợp này, giờ làm việc vượt quá nửa đêm và trùng với ngày hôm sau. Giờ làm việc hợp lệ được phân biệt bằng cách 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: float6476 hợp lệ.
In [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]4
Á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'91 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'92 cho các giờ làm việc kết quả trong giờ làm việc tiếp theo bắt đầu hoặc ngày hôm trước. Khác với các độ lệch khá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'91 có thể đưa ra các kết quả khác nhau 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'94 theo định nghĩa.
Điều này là do kết thúc giờ làm việc của một ngày bằng cách bắt đầu giờ làm việc vào ngày hôm sau. Ví dụ, trong 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'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.
In [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]5
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 liên quan đến thứ bảy và chủ nhật là ngày lễ. Để sử dụng các ngày lễ tùy ý, bạn có thể sử dụng 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'31, 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'31 là hỗn hợp củ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'29 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: float6479 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'31 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'29 ngoại trừ việc nó bỏ qua các ngày lễ tùy chỉnh được chỉ định.
In [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]6
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'29 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: float6479.
In [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]7
Bí danh bù#
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 các bí danh này là bí danh bù.
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 lịch |
W | tần suất hàng tuần |
M | Tần suất cuối tháng |
SM | Tần số cuối tháng [thứ 15 và cuối tháng] |
BM | Tần suất cuối tháng kinh doanh |
CBM | Tần suất cuối tháng kinh doanh tùy chỉnh |
CÔ | Tần suất bắt đầu tháng |
tin nhắn | Tần số bắt đầu nửa tháng [1 và 15] |
BMS | Tháng làm việc bắt đầu tần số |
CBMS | Tháng làm việc tùy chỉnh tần số bắt đầu |
Q. | tần số kết thúc quý |
BQ | Tần suất kết thúc quý doanh nghiệp |
QS | tần số bắt đầu quý |
BQS | Tần suất bắt đầu quý doanh nghiệp |
A, 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 số bắt đầu năm |
BAS, BYS | Tần suất năm kinh doanh bắt đầu |
BH | Tần suất giờ làm việc |
H | tần suất hàng giờ |
T, phút | tần số tối thiểu |
S | tần số thứ hai |
L, MS | mili giây |
U, chúng tôi | micro giây |
N | NanoSeconds |
Ghi chú
Khi sử dụng các bí danh bù ở trên, cần lưu ý rằng các chức năng 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']77,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, sẽ chỉ trả về các dấu thời gian trong khoảng được xác định bởiIn [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6408 vàIn [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6409. NếuIn [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6408 không tương ứng với tần số, các dấu thời gian được trả lại sẽ bắt đầu ở dấu thời gian hợp lệ tiếp theo, tương tự choIn [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6409, dấu thời gian được trả lại sẽ dừng ở dấu thời gian hợp lệ trước đó.
Ví dụ, đối với phần bù
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6412, nếu
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6408 không phải là lần đầu tiên trong tháng, dấu thời gian được trả lại sẽ bắt đầu với ngày đầu tiên của tháng tiếp theo. Nếu
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6409 không phải là ngày đầu tiên của một tháng, thời gian cuối cùng được trả lại sẽ là ngày đầu tiên của tháng tương ứng.
In [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]8
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']77 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']78 sẽ chỉ trả về các dấu thời gian hợp lệ giữa
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6408 và
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6409. Nếu đây không phải là dấu thời gian hợp lệ cho tần số đã cho, nó sẽ chuyển sang giá trị tiếp theo cho
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6408 [tương ứng trước đó cho
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6409]
Kết hợp bí danh#
Như chúng ta đã thấy trước đây, bí danh và phiên bản bù có thể bị nấm trong hầu hết các chức năng:
In [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]9
Bạn có thể kết hợp với nhau trong ngày và trong ngày bù đắp:
In [24]: pd.Timestamp[pd.NaT] Out[24]: NaT In [25]: pd.Timedelta[pd.NaT] Out[25]: NaT In [26]: pd.Period[pd.NaT] Out[26]: NaT # Equality acts as np.nan would In [27]: pd.NaT == pd.NaT Out[27]: False0
Offsets neo#
Đối với một số tần số, bạn có thể chỉ định hậu tố neo:
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. Giống 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]-FEB | Tần suất hàng quý, năm kết thúc vào tháng Hai |
[B]Q[S]-MAR | Tần suất hàng quý, năm kết thúc vào tháng 3 |
[B]Q[S]-APR | Tần suất hàng quý, năm kết thúc vào tháng Tư |
[B]Q[S]-MAY | Tần suất hàng quý, năm kết thúc vào tháng Năm |
[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]-JUL | 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]-NOV | 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, neo vào cuối tháng 12. Giống như ‘A” |
[B]A[S]-JAN | Tần suất hàng năm, kết thúc vào cuối tháng 1 |
[B]A[S]-FEB | Tần suất hàng năm, kết thúc cuối cùng của tháng hai |
[B]A[S]-MAR | Tần suất hàng năm, kết thúc tháng ba được neo |
[B]A[S]-APR | Tần suất hàng năm, kết thúc vào cuối tháng 4 |
[B]A[S]-MAY | Tần suất hàng năm, kết thúc được neo của tháng 5 |
[B]A[S]-JUN | Tần suất hàng năm, kết thúc cuối cùng của tháng 6 |
[B]A[S]-JUL | Tần suất hàng năm, kết thúc cuối cùng của tháng 7 |
[B]A[S]-AUG | Tần suất hàng năm, kết thúc cuối cùng của tháng 8 |
[B]A[S]-SEP | Tần suất hàng năm, kết thúc kết thúc tháng 9 |
[B]A[S]-OCT | Tần suất hàng năm, kết thúc tháng 10 được neo |
[B]A[S]-NOV | Tần suất hàng năm, kết thúc 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']83,
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, các 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']79, cũng như các hàm khác liên quan đến thời gian khác trong gấu trúc.
Tinh ngữ bù đắp được neo#
Đối với những độ lệch được neo vào đầu hoặc kết thúc tần số 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: float6487,
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: float6489,
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6426, v.v.], các quy tắc sau áp dụng cho việc lăn về phía trước và lùi.
Khi
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6427 không phải là 0, nếu ngày nhất định không ở điểm neo, nó đã bị gãy đến điểm neo [trước] tiếp theo và di chuyển
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6428 các bước bổ sung về phía trước hoặc ngược.
In [24]: pd.Timestamp[pd.NaT] Out[24]: NaT In [25]: pd.Timedelta[pd.NaT] Out[25]: NaT In [26]: pd.Period[pd.NaT] Out[26]: NaT # Equality acts as np.nan would In [27]: pd.NaT == pd.NaT Out[27]: False1
Nếu ngày đã cho ở điểm neo, nó sẽ được di chuyển
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6429 điểm về phía trước hoặc lùi.
In [24]: pd.Timestamp[pd.NaT] Out[24]: NaT In [25]: pd.Timedelta[pd.NaT] Out[25]: NaT In [26]: pd.Period[pd.NaT] Out[26]: NaT # Equality acts as np.nan would In [27]: pd.NaT == pd.NaT Out[27]: False2
Đối với trường hợp khi
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6430, ngày không được di chuyển nếu trên điểm neo, nếu không nó sẽ được chuyển về phía điểm neo tiếp theo.
In [24]: pd.Timestamp[pd.NaT] Out[24]: NaT In [25]: pd.Timedelta[pd.NaT] Out[25]: NaT In [26]: pd.Period[pd.NaT] Out[26]: NaT # Equality acts as np.nan would In [27]: pd.NaT == pd.NaT Out[27]: False3
Ngày lễ / Lịch ngày 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ễ đượ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: float6479 hoặc trong các phân tích khác đòi hỏi một tập hợp các ngày lễ được xác định trước. Lớp
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6432 cung cấp tất cả các phương pháp cần thiết để trả về danh sách các ngày lễ và chỉ
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6433 cần được xác định trong một lớp lịch nghỉ lễ cụ thể. Hơn nữa, các thuộc tính lớp
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6408 và
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6409 xác định trong ngày nghỉ ngày nào được tạo ra. Chúng nên được ghi đè lên lớp
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6432 để có phạm vi áp dụng cho tất cả các lớp con lịch.
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6437 là lịch duy nhất tồn tại và chủ yếu đóng vai trò là một ví dụ để phát triển các lịch khác.
Đối với các ngày lễ xảy ra vào ngày cố định [ví dụ: Ngày tưởng niệm Hoa Kỳ hoặc ngày 4 tháng 7], một quy tắc quan sát xác định khi nào kỳ nghỉ đó được quan sát nếu nó rơi vào một ngày cuối tuần hoặc một ngày không quan sát khác. Quy tắc quan sát được xác định là:
nearest_workday | Chuyển Thứ Bảy đến Thứ Sáu và Chủ Nhật sang Thứ Hai |
sunday_to_monday | Chuyển Chủ nhật sang Thứ Hai sau |
next_monday_or_tuesday | Chuyển Thứ Bảy sang Thứ Hai và Chủ Nhật/Thứ Hai đến Thứ Ba |
previous_friday | 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 sau |
Một ví dụ về cách các ngày lễ và lịch ngày lễ được xác định:
In [24]: pd.Timestamp[pd.NaT] Out[24]: NaT In [25]: pd.Timedelta[pd.NaT] Out[25]: NaT In [26]: pd.Period[pd.NaT] Out[26]: NaT # Equality acts as np.nan would In [27]: pd.NaT == pd.NaT Out[27]: False4dấu
Ngày trong tuần = mo [2] giống như 2 * tuần [ngày trong tuần = 2] is same as 2 * Week[weekday=2]
Sử dụng lịch này, tạo một chỉ mục hoặc thực hiện số học bỏ qua các ngày cuối tuần và ngày lễ [tức là, Ngày Tưởng niệm/ngày 4 tháng 7]. Ví dụ: bên dưới xác định một ngày làm việc tùy chỉnh bù đắp bằng cách sử dụng
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6438. Giống như bất kỳ bù nào khác, nó có thể được sử dụng để 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']79 hoặc thêm vào 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']04 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']78.
In [24]: pd.Timestamp[pd.NaT] Out[24]: NaT In [25]: pd.Timedelta[pd.NaT] Out[25]: NaT In [26]: pd.Period[pd.NaT] Out[26]: NaT # Equality acts as np.nan would In [27]: pd.NaT == pd.NaT Out[27]: False5
Phạm vi được xác định bởi các thuộc tính lớp
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6408 và
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6409 của
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6432. Các mặc định được hiển thị bên dưới.
In [24]: pd.Timestamp[pd.NaT] Out[24]: NaT In [25]: pd.Timedelta[pd.NaT] Out[25]: NaT In [26]: pd.Period[pd.NaT] Out[26]: NaT # Equality acts as np.nan would In [27]: pd.NaT == pd.NaT Out[27]: False6
Các ngày này có thể được ghi đè bằng cách đặt các thuộc tính là DateTime/Timestamp/String.
In [24]: pd.Timestamp[pd.NaT] Out[24]: NaT In [25]: pd.Timedelta[pd.NaT] Out[25]: NaT In [26]: pd.Period[pd.NaT] Out[26]: NaT # Equality acts as np.nan would In [27]: pd.NaT == pd.NaT Out[27]: False7
Mỗi lớp lịch có thể truy cập bằng tên bằng cách sử dụng hàm
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6445 trả về một thể hiện lớp học. Bất kỳ lớp lịch được nhập sẽ tự động có sẵn bởi chức năng này. Ngoài ra,
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6446 cung cấp một giao diện dễ dàng để tạo lịch là sự kết hợp của lịch hoặc lịch với các quy tắc bổ sung.
In [24]: pd.Timestamp[pd.NaT] Out[24]: NaT In [25]: pd.Timedelta[pd.NaT] Out[25]: NaT In [26]: pd.Period[pd.NaT] Out[26]: NaT # Equality acts as np.nan would In [27]: pd.NaT == pd.NaT Out[27]: False8
Resampling#
Pandas có chức năng đơn giản, mạnh mẽ và hiệu quả để thực hiện các hoạt động lấy mẫu lại trong quá trình chuyển đổi tần số [ví dụ: chuyển đổi dữ liệu thứ hai thành dữ liệu 5 phút]. Điều này là cực kỳ phổ biến trong, nhưng không giới hạn ở các ứng dụng tài chính.
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6447 là một nhóm dựa trên thời gian, tiếp theo là phương pháp giảm trên mỗi nhóm của nó. Xem một số ví dụ sách nấu ăn cho một số chiến lược nâng cao.cookbook examples for some advanced strategies.
Phương pháp
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6447 có thể được sử dụng trực tiếp từ các đối tượng
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6449, xem các tài liệu nhóm.groupby docs.
Basics#
In [24]: pd.Timestamp[pd.NaT] Out[24]: NaT In [25]: pd.Timedelta[pd.NaT] Out[25]: NaT In [26]: pd.Period[pd.NaT] Out[26]: NaT # Equality acts as np.nan would In [27]: pd.NaT == pd.NaT Out[27]: False9
Hàm
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6450 rất linh hoạt và cho phép bạn chỉ định nhiều tham số khác nhau để kiểm soát hoạt động chuyển đổi và lấy mẫu tần số.
Bất kỳ chức năng nào có sẵn thông qua việc gửi đi đều có sẵn dưới dạng phương thức của đối tượng được trả về, bao gồm
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6451,
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6452,
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6453,
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6454,
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6455,
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6456,
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6457,
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6458,
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6459dispatching is available as a method of the returned object, including
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6451,
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6452,
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6453,
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6454,
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6455,
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6456,
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6457,
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6458,
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6459,
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6460:
In [28]: pd.Timestamp[datetime.datetime[2012, 5, 1]] Out[28]: Timestamp['2012-05-01 00:00:00'] In [29]: pd.Timestamp["2012-05-01"] Out[29]: Timestamp['2012-05-01 00:00:00'] In [30]: pd.Timestamp[2012, 5, 1] Out[30]: Timestamp['2012-05-01 00:00:00']0
Đối với Downsampling,
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6461 có thể được đặt thành ‘trái, hoặc‘ phải để chỉ định kết thúc của khoảng thời gian nào được đóng:
In [28]: pd.Timestamp[datetime.datetime[2012, 5, 1]] Out[28]: Timestamp['2012-05-01 00:00:00'] In [29]: pd.Timestamp["2012-05-01"] Out[29]: Timestamp['2012-05-01 00:00:00'] In [30]: pd.Timestamp[2012, 5, 1] Out[30]: Timestamp['2012-05-01 00:00:00']1
Các tham số như
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6462 được sử dụng để thao tác các nhãn kết quả.
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6462 Chỉ định xem kết quả được dán nhãn với đầu hay kết thúc của khoảng thời gian.
In [28]: pd.Timestamp[datetime.datetime[2012, 5, 1]] Out[28]: Timestamp['2012-05-01 00:00:00'] In [29]: pd.Timestamp["2012-05-01"] Out[29]: Timestamp['2012-05-01 00:00:00'] In [30]: pd.Timestamp[2012, 5, 1] Out[30]: Timestamp['2012-05-01 00:00:00']2
Cảnh báo
Các giá trị mặc định cho
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6462 và
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6461 là 'còn lại' cho tất cả các độ lệch tần số ngoại trừ 'm', 'a', 'q', 'bm', 'ba', 'bq' và 'w' mà tất cả đều có mặc định quyền'.left’ for all frequency offsets except for ‘M’, ‘A’, ‘Q’, ‘BM’, ‘BA’, ‘BQ’, and ‘W’ which all have a default of ‘right’.
Điều này có thể dẫn đến việc nhìn về phía trước, trong đó giá trị cho một thời gian sau được kéo trở lại thời gian trước đó như trong ví dụ sau với 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: float6476:
In [28]: pd.Timestamp[datetime.datetime[2012, 5, 1]] Out[28]: Timestamp['2012-05-01 00:00:00'] In [29]: pd.Timestamp["2012-05-01"] Out[29]: Timestamp['2012-05-01 00:00:00'] In [30]: pd.Timestamp[2012, 5, 1] Out[30]: Timestamp['2012-05-01 00:00:00']3
Lưu ý cách giá trị cho Chủ nhật đã được kéo trở lại vào thứ Sáu trước đó. Để có được hành vi mà giá trị cho Chủ nhật được đẩy sang thứ Hai, hãy sử dụng thay thế
In [28]: pd.Timestamp[datetime.datetime[2012, 5, 1]] Out[28]: Timestamp['2012-05-01 00:00:00'] In [29]: pd.Timestamp["2012-05-01"] Out[29]: Timestamp['2012-05-01 00:00:00'] In [30]: pd.Timestamp[2012, 5, 1] Out[30]: Timestamp['2012-05-01 00:00:00']4
Tham số
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6467 có thể được đặt thành 0 hoặc 1 và cho phép bạn lấy mẫu lại trục được chỉ đị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']99.
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6469 có thể được đặt thành ‘dấu thời gian hoặc‘ giai đoạn để chuyển đổi chỉ số kết quả thành/từ dấu thời gian và biểu diễn khoảng thời gian. Theo mặc định
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6450 giữ lại biểu diễn đầu vào.
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6471 có thể được đặt thành ’bắt đầu hoặc’ kết thúc khi lấy mẫu lại dữ liệu thời gian [chi tiết bên dưới]. Nó chỉ định mức độ thời gian tần số thấp được chuyển đổi thành khoảng thời gian tần số cao hơn.
Upsampling#
Đối với UPSampling, bạn có thể chỉ định một cách để lấy mẫu và tham số
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6472 để nội suy qua các khoảng trống được tạo:
In [28]: pd.Timestamp[datetime.datetime[2012, 5, 1]] Out[28]: Timestamp['2012-05-01 00:00:00'] In [29]: pd.Timestamp["2012-05-01"] Out[29]: Timestamp['2012-05-01 00:00:00'] In [30]: pd.Timestamp[2012, 5, 1] Out[30]: Timestamp['2012-05-01 00:00:00']5
Sắp xếp lại thưa thớt#
Thời gian thưa thớt là những thứ mà bạn có ít điểm hơn so với lượng thời gian bạn đang tìm cách lấy mẫu lại. Nguyên nhân UPSAPPLING một loạt thưa thớt có thể tạo ra nhiều giá trị trung gian. Khi bạn không muốn sử dụng một phương thức để điền vào các giá trị này, ví dụ:
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6473 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']95, sau đó các giá trị trung gian sẽ được lấp đầy bằng
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6475.
Vì
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6450 là một nhóm dựa trên thời gian, sau đây là một phương pháp để lấy mẫu hiệu quả chỉ các nhóm không phải là tất cả
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6475.
In [28]: pd.Timestamp[datetime.datetime[2012, 5, 1]] Out[28]: Timestamp['2012-05-01 00:00:00'] In [29]: pd.Timestamp["2012-05-01"] Out[29]: Timestamp['2012-05-01 00:00:00'] In [30]: pd.Timestamp[2012, 5, 1] Out[30]: Timestamp['2012-05-01 00:00:00']6
Nếu chúng ta muốn lấy mẫu lại thành toàn bộ loạt phim:
In [28]: pd.Timestamp[datetime.datetime[2012, 5, 1]] Out[28]: Timestamp['2012-05-01 00:00:00'] In [29]: pd.Timestamp["2012-05-01"] Out[29]: Timestamp['2012-05-01 00:00:00'] In [30]: pd.Timestamp[2012, 5, 1] Out[30]: Timestamp['2012-05-01 00:00:00']7
Thay vào đó, chúng tôi chỉ có thể lấy mẫu lại các nhóm nơi chúng tôi có điểm như sau:
In [28]: pd.Timestamp[datetime.datetime[2012, 5, 1]] Out[28]: Timestamp['2012-05-01 00:00:00'] In [29]: pd.Timestamp["2012-05-01"] Out[29]: Timestamp['2012-05-01 00:00:00'] In [30]: pd.Timestamp[2012, 5, 1] Out[30]: Timestamp['2012-05-01 00:00:00']8
Aggregation#
Tương tự như API tổng hợp, API Groupby và API cửa sổ,
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6478 có thể được lấy lại có chọn lọc.aggregating API, groupby API, and the window API, a
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6478 can be selectively resampled.
Đặt lạ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']99, mặc định sẽ là hành động trên tất cả các cột có cùng chức năng.
In [28]: pd.Timestamp[datetime.datetime[2012, 5, 1]] Out[28]: Timestamp['2012-05-01 00:00:00'] In [29]: pd.Timestamp["2012-05-01"] Out[29]: Timestamp['2012-05-01 00:00:00'] In [30]: pd.Timestamp[2012, 5, 1] Out[30]: Timestamp['2012-05-01 00:00:00']9
Chúng tôi có thể chọn một cột hoặc cột cụ thể bằng cách sử dụng GetItem Standard.
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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
Bạn có thể vượt qua danh sách hoặc bắt buộc các chức năng để thực hiện tổng hợp với, xuất ra
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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']01
Trê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']99 được lấy lại, bạn có thể chuyển danh sách các chức năng để áp dụng cho mỗi cột, tạo ra kết quả tổng hợp với chỉ số phân cấ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']02
Bằng cách chuyển một dict cho
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6482, bạn có thể áp dụng một tập hợp khác cho các cột 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']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']03
Tên chức năng cũng có thể là chuỗi. Để một chuỗi có hiệu lực, nó phải được thực hiện trên đối tượng được ghép 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']04
Hơn nữa, bạn cũng có thể chỉ định nhiều hàm tập hợp cho từng cột một cách riêng biệ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']05
Nếu 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']99 không có chỉ mục datetimelike, mà thay vào đó bạn muốn lấy mẫu lại dựa trên cột datetimelike trong khung, nó có thể được chuyển đến từ khóa
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6485.
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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
Tương tự, nếu thay vào đó bạn muốn lấy mẫu lại theo cấp độ dữ liệu 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: float6419, tên hoặc vị trí của nó có thể được chuyển đến từ khóa
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6487.
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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
Lặp lại thông qua các nhóm#
Với đối tượng
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6478 trong tay, việc lặp lại thông qua dữ liệu được nhóm lại rất tự nhiên và các chức năng tương tự như
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6489:
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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
Xem lặp qua các nhóm hoặc
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6490 để biết thêm.Iterating through groups or
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6490 for more.
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']
61 hoặc In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]]
Out[19]:
2000-01-01 0
2000-01-02 1
2000-01-03 2
Freq: D, dtype: int64
92 để điều chỉnh phần bắt đầu của các thùng#
Mới trong phiên bản 1.1.0.
Các thùng của nhóm được điều chỉnh dựa trên đầu ngày của điểm bắt đầu chuỗi thời gian. Điều này hoạt động tốt với các tần số là bội số của một ngày [như
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6493] hoặc chia đều một ngày [như
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6494 hoặc
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6495]. Điều này có thể tạo ra sự không nhất quán với một số tần số không đáp ứng tiêu chí này. Để thay đổi hành vi này, bạn có thể chỉ định dấu thời gian cố định 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']61.
Ví dụ:
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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
Ở đây chúng ta có thể thấy rằng, 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']61 với giá trị mặc định của nó [
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6498], kết quả sau
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6499 không giống nhau tùy thuộc vào chuỗi thời gian bắt đầu:
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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
Ở đây chúng ta có thể thấy rằng, khi cài đặ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']61 thành
In [20]: pd.Series[pd.date_range["2000", freq="D", periods=3]] Out[20]: 0 2000-01-01 1 2000-01-02 2 2000-01-03 dtype: datetime64[ns]01, kết quả sau
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6499 giống hệt nhau tùy thuộc vào chuỗi thời gian bắt đầu:
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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
Nếu cần, bạn có thể sử dụng dấu thời gian tùy chỉ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']61:
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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
Nếu cần, bạn chỉ có thể điều chỉnh các thùng với
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6492 Timedelta sẽ được thêm vào 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']61. Hai ví dụ đó tương đương với chuỗi thời gian nà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']13
Lưu ý việc sử dụng
In [20]: pd.Series[pd.date_range["2000", freq="D", periods=3]] Out[20]: 0 2000-01-01 1 2000-01-02 2 2000-01-03 dtype: datetime64[ns]06 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']61 trên ví dụ cuối cùng. Trong trường 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']61 sẽ được đặt thành giá trị đầu tiên của thời gian.
Lấy lại mẫu lại#
Mới trong phiên bản 1.3.0.
Thay vì điều chỉnh phần đầu của thùng, đôi khi chúng ta cần sửa chữa phần cuối của các thùng để tạo mẫu lại ngược 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']89 đã cho. Việc đặt lại lại đặt lại
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6461 thành
In [20]: pd.Series[pd.date_range["2000", freq="D", periods=3]] Out[20]: 0 2000-01-01 1 2000-01-02 2 2000-01-03 dtype: datetime64[ns]11 theo mặc định vì giá trị cuối cùng phải được coi là điểm cạnh cho thùng cuối cùng.
Chúng ta có thể đặ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']61 thành
In [20]: pd.Series[pd.date_range["2000", freq="D", periods=3]] Out[20]: 0 2000-01-01 1 2000-01-02 2 2000-01-03 dtype: datetime64[ns]13. Giá trị cho một chỉ 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']78 cụ thể là viết tắt của kết quả lấy mẫu 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']78 hiện tại trừ
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']89 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']78 hiện tại với mức đóng bên phả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']14
Ngoài ra, trái ngược với tùy chọn
In [19]: pd.Series[range[3], index=pd.date_range["2000", freq="D", periods=3]] Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6498,
In [20]: pd.Series[pd.date_range["2000", freq="D", periods=3]] Out[20]: 0 2000-01-01 1 2000-01-02 2 2000-01-03 dtype: datetime64[ns]19 được hỗ trợ. Điều này sẽ đặt nguồn gốc là trần nửa đêm 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']78 lớn nhấ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']15
Kết quả trên sử dụng
In [20]: pd.Series[pd.date_range["2000", freq="D", periods=3]] Out[20]: 0 2000-01-01 1 2000-01-02 2 2000-01-03 dtype: datetime64[ns]21 làm cạnh phải của thùng cuối cùng kể từ khi 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']16
Đại diện khoảng thời gian#
Các khoảng thời gian thường xuyên được biểu thị bằ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']89 trong gấu trúc trong khi các chuỗi của 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']89 được thu thập 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']90, có thể được tạo bằng hàm tiện 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']93.
Period#
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']89 đại diện cho một khoảng thời gian [ví dụ: một ngày, một tháng, một phần tư, v.v.]. Bạn có thể chỉ định nhịp qua 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']89 bằng bí danh tần số như bên dưới. Bởi 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']89 đại diện cho một khoả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']89, nó không thể âm như từ -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']17
Thêm và trừ các số nguyên từ các giai đoạn chuyển thời gian theo tần số của chính nó. Số học không được phép giữ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']89 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']89 khác nhau [nhị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']18
Nếu
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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 FREQ hàng ngày hoặc cao hơn [
In [20]: pd.Series[pd.date_range["2000", freq="D", periods=3]] Out[20]: 0 2000-01-01 1 2000-01-02 2 2000-01-03 dtype: datetime64[ns]33,
In [20]: pd.Series[pd.date_range["2000", freq="D", periods=3]] Out[20]: 0 2000-01-01 1 2000-01-02 2 2000-01-03 dtype: datetime64[ns]34,
In [20]: pd.Series[pd.date_range["2000", freq="D", periods=3]] Out[20]: 0 2000-01-01 1 2000-01-02 2 2000-01-03 dtype: datetime64[ns]35,
In [20]: pd.Series[pd.date_range["2000", freq="D", periods=3]] Out[20]: 0 2000-01-01 1 2000-01-02 2 2000-01-03 dtype: datetime64[ns]36,
In [20]: pd.Series[pd.date_range["2000", freq="D", periods=3]] Out[20]: 0 2000-01-01 1 2000-01-02 2 2000-01-03 dtype: datetime64[ns]37,
In [20]: pd.Series[pd.date_range["2000", freq="D", periods=3]] Out[20]: 0 2000-01-01 1 2000-01-02 2 2000-01-03 dtype: datetime64[ns]38,
In [20]: pd.Series[pd.date_range["2000", freq="D", periods=3]] Out[20]: 0 2000-01-01 1 2000-01-02 2 2000-01-03 dtype: datetime64[ns]39],
In [20]: pd.Series[pd.date_range["2000", freq="D", periods=3]] Out[20]: 0 2000-01-01 1 2000-01-02 2 2000-01-03 dtype: datetime64[ns]40 và ________ 205 giống như có thể được thêm vào. 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'87 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']19
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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
Nếu
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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 có các tần số khác, chỉ có thể thêm cùng một
In [20]: pd.Series[pd.date_range["2000", freq="D", periods=3]] Out[20]: 0 2000-01-01 1 2000-01-02 2 2000-01-03 dtype: datetime64[ns]40. 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'87 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']21
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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
Lấy sự khác biệt của các trường hợ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']89 với cùng tần số sẽ trả về số lượng đơn vị tần số giữa chú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']23
Thời kỳ InderIndex và Stent_Range#
Các chuỗi thông thường của 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']89 có thể được thu thập 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']90, có thể được xây dựng bằng cách sử dụng hàm tiện 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']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']24
Trình xây dự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']90 cũng có thể được sử dụng trực tiế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']25
Vượt qua đầu ra tần số nhân một chuỗ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']89 có nhịp nhâ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']26
Nế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']86 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']87 là đố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']89, chúng sẽ được sử dụng làm điểm cuối neo 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']90 với tần số khớp với 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']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']27
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']79,
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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 cũng có thể được sử dụng để lập chỉ mục các đối tượng gấu trú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']28
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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 hỗ trợ bổ sung và trừ với cùng quy tắc 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']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']29
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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 có DTYPE của riêng mình có tên
In [20]: pd.Series[pd.date_range["2000", freq="D", periods=3]] Out[20]: 0 2000-01-01 1 2000-01-02 2 2000-01-03 dtype: datetime64[ns]62, tham khảo DTYPE của giai đoạn.Period Dtypes.
Thời kỳ 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']90 có tùy chỉnh
In [20]: pd.Series[pd.date_range["2000", freq="D", periods=3]] Out[20]: 0 2000-01-01 1 2000-01-02 2 2000-01-03 dtype: datetime64[ns]62 DTYPE. Đây là một DTYPE mở rộng gandas tương tự như thời gian nhận biết 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']81].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']81].
DTYPE
In [20]: pd.Series[pd.date_range["2000", freq="D", periods=3]] Out[20]: 0 2000-01-01 1 2000-01-02 2 2000-01-03 dtype: datetime64[ns]62 giữ thuộc tí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']89 và được biểu thị bằ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']91 như
In [20]: pd.Series[pd.date_range["2000", freq="D", periods=3]] Out[20]: 0 2000-01-01 1 2000-01-02 2 2000-01-03 dtype: datetime64[ns]69 hoặc
In [20]: pd.Series[pd.date_range["2000", freq="D", periods=3]] Out[20]: 0 2000-01-01 1 2000-01-02 2 2000-01-03 dtype: datetime64[ns]70, sử dụng chuỗi tần số.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']30
DTYPE
In [20]: pd.Series[pd.date_range["2000", freq="D", periods=3]] Out[20]: 0 2000-01-01 1 2000-01-02 2 2000-01-03 dtype: datetime64[ns]62 có thể được sử dụng trong
In [20]: pd.Series[pd.date_range["2000", freq="D", periods=3]] Out[20]: 0 2000-01-01 1 2000-01-02 2 2000-01-03 dtype: datetime64[ns]72. Nó cho phép người ta thay đổ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']89 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']90 như
In [20]: pd.Series[pd.date_range["2000", freq="D", periods=3]] Out[20]: 0 2000-01-01 1 2000-01-02 2 2000-01-03 dtype: datetime64[ns]75 và chuyển đổ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']79 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']90 như
In [20]: pd.Series[pd.date_range["2000", freq="D", periods=3]] Out[20]: 0 2000-01-01 1 2000-01-02 2 2000-01-03 dtype: datetime64[ns]78:
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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
Chỉ mục một phần chuỗi định kỳ#
Thời kỳ InterIndex hiện hỗ trợ cắt chuỗi một phần với các chỉ mục không đơn điệu.
Mới trong phiên bản 1.1.0.
Bạn có thể chuyển theo ngày và chuỗi đế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']98 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']99 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']90, theo cách tương tự 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']79. Để biết chi tiết, hãy tham khảo Lập chỉ mục chuỗi một phần của DatetimeIndex.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']32
Vượt qua một chuỗi đại diện cho tần số thấp hơ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']90 trả về dữ liệu cắt một phầ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']33
Như 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']79, các điểm cuối sẽ được đưa vào kết quả. Ví dụ dưới đây, dữ liệu lát bắt đầu từ 10:00 đến 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']34
Chuyển đổi tần số và lấy mẫu lại với chu kỳ#
Tần số 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']89 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']90 có thể được chuyển đổi thông qua phương pháp
In [20]: pd.Series[pd.date_range["2000", freq="D", periods=3]] Out[20]: 0 2000-01-01 1 2000-01-02 2 2000-01-03 dtype: datetime64[ns]87. Hãy bắt đầu với năm tài chính 2011, kết thúc vào tháng 12:
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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
Chúng ta có thể chuyển đổi nó thành tần suất hàng tháng. Sử dụng tham số
In [20]: pd.Series[pd.date_range["2000", freq="D", periods=3]] Out[20]: 0 2000-01-01 1 2000-01-02 2 2000-01-03 dtype: datetime64[ns]88, chúng tôi có thể chỉ định nên trả về tháng bắt đầu hay kết thú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']36
Người viết tắt của S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S 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']37
Chuyển đổi thành một siêu kỳ của người Viking [ví dụ: tần số hàng năm là siêu tần số hàng quý] tự động trả về siêu giai đoạn bao gồm thời gian đầu và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']38
Lưu ý rằng vì chúng tôi đã chuyển đổi thành tần số hàng năm kết thúc năm vào tháng 11, thời gian hàng tháng của tháng 12 năm 2011 thực sự là trong giai đoạn A-NOV 2012.
Chuyển đổi thời gian với tần số neo đặc biệt hữu ích để làm việc với các dữ liệu hàng quý khác nhau cho kinh tế, kinh doanh và các lĩnh vực khác. Nhiều tổ chức xác định các quý so với tháng mà năm tài chính của họ bắt đầu và kết thúc. Do đó, quý đầu tiên của năm 2011 có thể bắt đầu vào năm 2010 hoặc một vài tháng vào năm 2011. Thông qua các tần số neo, gấu trúc hoạt động cho tất cả các tần số hàng quý
In [20]: pd.Series[pd.date_range["2000", freq="D", periods=3]] Out[20]: 0 2000-01-01 1 2000-01-02 2 2000-01-03 dtype: datetime64[ns]89 đến
In [20]: pd.Series[pd.date_range["2000", freq="D", periods=3]] Out[20]: 0 2000-01-01 1 2000-01-02 2 2000-01-03 dtype: datetime64[ns]90.
In [20]: pd.Series[pd.date_range["2000", freq="D", periods=3]] Out[20]: 0 2000-01-01 1 2000-01-02 2 2000-01-03 dtype: datetime64[ns]90 Xác định các quý lịch thường xuyê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']39
In [20]: pd.Series[pd.date_range["2000", freq="D", periods=3]] Out[20]: 0 2000-01-01 1 2000-01-02 2 2000-01-03 dtype: datetime64[ns]92 định nghĩa kết thúc năm tài chính vào tháng 3:
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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
Chuyển đổi giữa các đại diện#
Dữ liệu có thời gian có thể được chuyển đổi thành dữ liệu định kỳ-ed bằng cách sử dụng
In [20]: pd.Series[pd.date_range["2000", freq="D", periods=3]] Out[20]: 0 2000-01-01 1 2000-01-02 2 2000-01-03 dtype: datetime64[ns]93 và ngược lại bằng cách sử dụng
In [20]: pd.Series[pd.date_range["2000", freq="D", periods=3]] Out[20]: 0 2000-01-01 1 2000-01-02 2 2000-01-03 dtype: datetime64[ns]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']41
Hãy nhớ rằng có thể được sử dụng rằng ‘S và và E E, có thể được sử dụng để trả lại dấu thời gian khi bắt đầu hoặc kết thúc giai đoạ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']42
Chuyển đổi giữa giai đoạn và dấu thời gian cho phép sử dụng một số chức năng số học thuận tiện. Trong ví dụ sau, chúng tôi chuyển đổi tần số hàng quý với năm kết thúc vào tháng 11 đến 9 giờ tối cuối tháng sau khi kết thúc quý:
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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
Đại diện cho các khoảng cách ngoài giới hạn#
Nếu bạn có dữ liệu nằm ngoài giới hạ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']78, hãy xem các hạn chế về dấu thời gian, thì bạn có thể sử dụ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']90 và/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']98 của
In [20]: pd.Series[pd.date_range["2000", freq="D", periods=3]] Out[20]: 0 2000-01-01 1 2000-01-02 2 2000-01-03 dtype: datetime64[ns]98 để thực hiện tính toán.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']90 and/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']98 of
In [20]: pd.Series[pd.date_range["2000", freq="D", periods=3]] Out[20]: 0 2000-01-01 1 2000-01-02 2 2000-01-03 dtype: datetime64[ns]98 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']44
Để chuyển đổi từ biểu diễn YyyyMMDD dựa trên
In [20]: pd.Series[pd.date_range["2000", freq="D", periods=3]] Out[20]: 0 2000-01-01 1 2000-01-02 2 2000-01-03 dtype: datetime64[ns]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']45
Chúng có thể dễ dàng được chuyển đổi 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']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']46
Xử lý múi giờ#
Pandas cung cấp hỗ trợ phong phú cho việc làm việc với dấu thời gian trong các múi giờ khác nhau bằng các thư viện
In [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]01 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']77 hoặc các đối tượng
In [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]03 từ thư viện tiêu chuẩn.
Làm việc với múi giờ#
Theo mặc định, các đối tượng gấu trúc là múi giờ không biế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']47
Để bản địa hóa các ngày này vào múi giờ [gán một múi giờ cụ thể cho một ngày ngây thơ], bạn có thể sử dụng phương thức
In [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]04 hoặc đố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']67 trong
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,
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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 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']79. Bạn có thể vượt qua
In [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]01 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']77 Các đối tượng múi giờ hoặc chuỗi cơ sở dữ liệu múi giờ Olson. Các chuỗi múi giờ Olson sẽ trả về các đối tượng múi giờ
In [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]01 theo mặc định. Để trả 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']77 Các đối tượng múi giờ, hãy nối thêm
In [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]13 trước chuỗi.
Trong
In [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]
01, bạn có thể tìm thấy một danh sách các múi giờ phổ biến [và ít phổ biến] bằng cách sử dụngIn [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]
15.In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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 sử dụng các múi giờ HĐH để có một danh sách cố định có sẵn. Đối với các khu vực chung, các tên giống nhưIn [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]
01.
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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
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']49
Lưu ý rằng múi giờ
In [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]18 là một trường hợp đặc biệt 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']77 và nên được xây dựng rõ ràng như là một ví dụ của
In [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]20. Bạn cũng có thể xây dựng các đối tượng thời gian khác một cách rõ ràng trước tiê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']50
Để chuyển đổi đối tượng gấu trúc nhận biết múi giờ từ múi giờ này sang múi giờ khác, bạn có thể sử dụng phương thức
In [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]21.
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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ú
Khi sử dụng các múi giờ
In [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]01,
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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 sẽ xây dựng một đối tượng múi giờ khác 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']78 cho cùng một đầu vào múi giờ. 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']79 có thể chứa một bộ sưu tậ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']78 có thể có các độ lệch UTC khác nhau và không thể được biểu diễn ngắn gọn bằng một phiên bản múi giờ
In [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]01 trong khi 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']78 thể hiện một thời điểm với một điểm bù UTC cụ thể.
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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
Cảnh báo
Hãy cảnh giác với các chuyển đổi giữa các thư viện. Trong một số múi giờ,
In [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]01 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']77 có các định nghĩa khác nhau về khu vực. Đây là một vấn đề đối với các múi giờ bất thường hơn là các khu vực tiêu chuẩn như
In [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]31.
Cảnh báo
Hãy cảnh giác với các chuyển đổi giữa các thư viện. Trong một số múi giờ,
In [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]01 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']77 có các định nghĩa khác nhau về khu vực. Đây là một vấn đề đối với các múi giờ bất thường hơn là các khu vực tiêu chuẩn như
In [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]31.here for how to handle such a situation.
Cảnh báo
Hãy cảnh giác với các chuyển đổi giữa các thư viện. Trong một số múi giờ,
In [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]01 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']77 có các định nghĩa khác nhau về khu vực. Đây là một vấn đề đối với các múi giờ bất thường hơn là các khu vực tiêu chuẩn như
In [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]31.
Cảnh báo
Hãy cảnh giác với các chuyển đổi giữa các thư viện. Trong một số múi giờ,
In [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]01 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']77 có các định nghĩa khác nhau về khu vực. Đây là một vấn đề đối với các múi giờ bất thường hơn là các khu vực tiêu chuẩn như
In [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]31.
Cảnh báo
Hãy cảnh giác với các chuyển đổi giữa các thư viện. Trong một số múi giờ,
In [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]01 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']77 có các định nghĩa khác nhau về khu vực. Đây là một vấn đề đối với các múi giờ bất thường hơn là các khu vực tiêu chuẩn như
In [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]31.
Xin lưu ý rằng một định nghĩa múi giờ trên các phiên bản của các thư viện múi giờ có thể không được coi là bằng nhau. Điều này có thể gây ra vấn đề khi làm việc với dữ liệu được lưu trữ được bản địa hóa bằng một phiên bản và hoạt động với một phiên bản khác. Xem ở đây để biết cách xử lý một tình huống như vậ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']53
Đối với các múi giờ
In [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]01, việc truyền trực tiếp một đối tượng múi giờ là không chính xác vào 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']74 [ví dụ:
In [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]34. Thay vào đó, DateTime cần được định vị bằng phương thức
In [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]35 trên đối tượng múi giờ
In [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]01.
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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
Xin lưu ý rằng đối với thời gian trong tương lai, việc chuyển đổi chính xác giữa các múi giờ [và UTC] không thể được đảm bảo bởi bất kỳ thư viện múi giờ nào vì một thời gian bù múi giờ có thể được thay đổi bởi chính phủ 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']55
Nếu bạn đang sử dụng ngày vượt quá 2038-01-18, do sự thiếu hụt hiện tại trong các thư viện cơ bản gây ra bởi vấn đề năm 2038, các điều chỉnh thời gian tiết kiệm ánh sáng ban ngày [DST] đối với ngày nhận biết thời gian sẽ không được áp dụng. Nếu và khi các thư viện cơ bản được cố định, các chuyển đổi DST sẽ được áp dụ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']56
Fold#
Mới trong phiên bản 1.1.0.
Đối với thời gian mơ hồ, gấu trúc hỗ trợ chỉ định rõ ràng đối số gấp từ khóa. Do thời gian tiết kiệm ánh sáng ban ngày, thời gian đồng hồ tường có thể xảy ra hai lần khi chuyển từ mùa hè sang mùa đông; Fold mô tả liệu giống như DateTime tương ứng với lần đầu tiên [0] hay lần thứ hai [1] đồng hồ treo tường chạm vào thời gian mơ hồ. Fold chỉ được hỗ trợ để xây dựng từ ngây thơ
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']74 [xem tài liệu DateTime để biết chi tiết] hoặc 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']78 hoặc để xây dựng từ các thành phần [xem bên dưới]. Chỉ có 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']77 được hỗ trợ [xem tài liệu DateUtil cho các phương thứ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']77 liên quan đến các dữ liệu mơ hồ] vì thời gian ____701 không hỗ trợ gấp [xem tài liệu PYTZ để biết chi tiết về cách
In [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]01 liên quan đến các dữ liệu mơ hồ]. Để bản địa hóa một dữ liệu mơ hồ với
In [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]01, vui lòng sử dụng
In [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]52. Nói chung, chúng tôi khuyên bạn nên dựa vào
In [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]52 khi bản địa hóa các dữ liệu mơ hồ nếu bạn cần kiểm soát trực tiếp cách xử lý chú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']57
Thời gian mơ hồ khi nội địa hóa#
In [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]04 có thể không thể xác định được phần bù UTC của dấu thời gian vì thời gian tiết kiệm ánh sáng ban ngày [DST] trong múi giờ địa phương gây ra một số lần xảy ra hai lần trong vòng một ngày [đồng hồ rơi trở lại]. Lựa chọn tiếp theo đã khả thi:
In [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]
55: tăngIn [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]
56 [hành vi mặc định]In [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]
57: Cố gắng xác định cơ sở bù chính xác về tính đơn điệu của dấu thời gianIn [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]
58: Thay thế thời gian mơ hồ bằngIn [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']
09In [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]
60:In [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]
61 đại diện cho thời gian DST,In [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]
62 đại diện cho thời gian không phải DST. Một mảng giống như các giá trịIn [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]
60 được hỗ trợ cho một chuỗi 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']58
Điều này sẽ thất bại vì có thời gian mơ hồ [
In [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]64]
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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
Xử lý những thời gian mơ hồ này bằng cách chỉ định như 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']60
Thời gian không tồn tại khi bản địa hóa#
Một quá trình chuyển đổi DST cũng có thể thay đổi thời gian địa phương trước 1 giờ tạo ra thời gian địa phương không tồn tại [đồng hồ mùa xuân chuyển tiếp]. Hành vi của việc bản địa hóa một thời gian có thời gian không tồn tại có thể được kiểm soát bằng đối số
In [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]65. Lựa chọn tiếp theo đã khả thi:
In [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]
55: tăngIn [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]
67 [hành vi mặc định]In [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]
58: Thay thế thời gian không tồn tại bằngIn [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']
09In [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]
70: Chuyển thời gian không tồn tại đến thời gian thực gần nhấtIn [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]
71: Chuyển số thời gian không tồn tại ngược đến thời gian thực gần nhấtĐối tượng Timedelta: Thay đổi thời gian không tồn tại theo thời gian 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']61
Nội địa hóa thời gian không tồn tại sẽ gây ra lỗi theo mặc đị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']62
Biến đổi thời gian không tồn tại 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']09 hoặc chuyển 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']63
Hoạt động chuỗi múi giờ#
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 với các giá trị ngây thơ múi giờ được biểu thị bằng DTYPE 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']80.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']80.
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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
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 với các giá trị nhận biết múi giờ được biểu thị bằng DTYPE 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']81 trong đó
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']67 là múi giờ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']81 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']67 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']65
Cả hai thông tin về 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']98 này có thể được thao tác 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: float6448, xem phần excessor DT.the dt accessor section.
Ví dụ, để bản địa hóa và chuyển đổi một con tem ngây thơ sang múi giờ nhận thứ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']66
Thông tin múi giờ cũng có thể được thao tác bằng phương pháp
In [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]80. Phương pháp này có thể chuyển đổi giữa các dtypes nhận biết múi giờ khác 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']67
Ghi chú
Sử dụng
In [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]81 trê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']98, trả về một mảng dữ liệu. Numpy hiện không hỗ trợ các múi giờ [mặc dù nó đang in trong múi giờ địa phương!], Do đó
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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
Bằng cách chuyển đổi thành một mảng đối tượng của dấu thời gian, nó bảo tồn thông tin múi giờ. Ví dụ: khi chuyển đổi trở lại một loạ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']69
Tuy nhiên, nếu bạn muốn một mả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']80 thực tế [với các giá trị được chuyển đổi thành UTC] thay vì một mảng các đối tượng, bạn có thể chỉ định đối số
In [21]: pd.Series[pd.period_range["1/1/2011", freq="M", periods=3]] Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series[[pd.DateOffset[1], pd.DateOffset[2]]] Out[22]: 0 1 dtype: object In [23]: pd.Series[pd.date_range["1/1/2011", freq="M", periods=3]] Out[23]: 0 2011-01-31 1 2011-02-28 2 2011-03-31 dtype: datetime64[ns]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']70