gấu trúc chứa các khả năng và tính năng mở rộng để 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 các kiểu dữ liệu NumPy
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']75 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']76, pandas đã hợp nhất 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']77 cũng như tạo ra một lượng lớn chức năng mới để thao tác dữ liệu chuỗi thời gian
Ví dụ, gấu trúc hỗ trợ
Phân tích thông tin chuỗi thời gian từ nhiều 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 ngày và khoảng thời gian có tần suất 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 ngày giờ với thông tin múi giờ
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08: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 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à giờ với gia 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
Tổng quan#
gấu trúc nắm bắt 4 khái niệm chung liên quan đến thời gian
Ngày giờ. Một ngày và thời gian cụ thể với hỗ trợ múi giờ. 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']
78 từ thư viện tiêu chuẩnđồng bằng thời gian. Khoảng 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']
79 từ thư viện tiêu chuẩnkhoảng thời gian. 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 offset. Khoảng 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']
80 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']
81
Ý tưởng
lớp vô hướng
Lớp mảng
kiểu dữ liệu gấu trúc
Phương pháp tạo chính
Ngày 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']82
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']83
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']84 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']85
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']86 hoặc
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']87
đồng bằng thời gian
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']88
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']89
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']90
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']91 hoặc
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']92
khoảng thời gian
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']93
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']94
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']95
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']93 hoặc
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']97
ngày offset
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']98
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']99
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']99
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']98
Đối với dữ liệu chuỗi thời gian, thông thường sẽ biểu thị thành phần thời gian trong chỉ mục 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']02 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']03 để có thể thực hiện các thao tác đối với phần tử thời gian
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]4
Tuy nhiê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']02 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']03 cũng có thể trực tiếp hỗ trợ thành phần thời gian dưới dạng chính dữ liệu
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]7
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']02 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']03 đã mở rộng chức năng và hỗ trợ kiểu dữ liệu 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']08,
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']09 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']93 khi được chuyển vào các hàm tạo đó. 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']98 tuy nhiên 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']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']5
Cuối cùng, gấu trúc đại diện cho thời gian ngày không có giá trị, đồng bằng thời gian và khoảng thời gian 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']13, hữu ích để biểu thị các giá trị giống như ngày bị thiếu hoặc không 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']14 đối với dữ liệu float
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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
Dấu thời gian so với. khoảng thời gian #
Dữ liệu có dấu 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ị với các điểm theo thời gian. Đối với các đối tượng gấu trúc, điều đó có nghĩa là sử dụng các điểm theo 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']9
Tuy nhiên, trong nhiều trường hợp, thay vào đó, việc liên kết những thứ như thay đổi biến với một khoảng thời gian sẽ tự nhiên hơn. Khoảng thời gian được đại diện bở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 có thể được chỉ định rõ ràng hoặc được suy ra từ định dạng chuỗi ngày giờ
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']82 và
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']93 có thể dùng làm chỉ mục. 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']82 và
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']93 được tự động ép buộc 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']83 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']94 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']1
gấu trúc cho phép bạn chụp cả hai biểu diễn và chuyển đổi giữa chúng. Về cơ bản, pandas đại diện cho dấu thời gian bằng cách sử dụng các phiên bản của
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']82 và chuỗi dấu thời gian bằng cách sử dụng các phiên bản của
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']83. Đối với các khoảng thời gian thông thường, gấu trúc 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']93 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']94 cho các chuỗi khoảng thời gian. Hỗ trợ tốt hơn cho các khoảng thời gian không đều với điểm bắt đầu và điểm kết thúc tùy ý sắp ra mắt trong các bản phát hành trong tương lai
Đang chuyển đổi thành dấu thời gian#
Để chuyển đổi một đối tượng giống như danh sách 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']02 của các đối tượng giống như ngày tháng e. g. 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']86. Khi được thông qua một
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']02, điều này trả về một
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']02 [có cùng chỉ mục], trong khi một danh sách giống như được chuyển đổi thành một
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']83
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']2
Nếu bạn sử dụng ngày bắt đầu bằng ngày đầu tiên [tôi. e. phong cách 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']31
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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']31 không nghiêm ngặt. Nếu một ngày không 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']31 là Sai và trong trường hợp phân tích cú pháp các chuỗi ngày được phân tách [e. g.
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']34] thì một cảnh báo cũng sẽ được đưa ra
Nếu bạn chuyển một chuỗi đơn 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']86, nó sẽ trả về một 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']82.
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']82 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']31 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']39, 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']86 nếu những tùy chọn này đượ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ực tiếp hàm tạo
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']83
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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 chuyển để đặt tần suất của chỉ mục làm tần suất được suy luận 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 ngày giờ được yêu cầu, 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']39 có thể được chuyển để đả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 khả dụng 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']39, hãy xem tài liệu về thời gian của Python
Lắp ráp datetime từ nhiều cột DataFrame#
Bạn cũng có thể chuyển một
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']03 cột số nguyên hoặc chuỗi để tập hợp thành một
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']02 của
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']46
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']8
Bạn chỉ có thể vượt qua các cột mà bạn cần lắp ráp
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']9
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']47 tìm kiếm các chỉ định tiêu chuẩn của thành phần ngày giờ trong tên cột, bao gồm
yêu cầu. ________ 548, ________ 549, ________ 550
không bắt buộc.
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']
51,In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']
52,In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']
53,In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']
54,In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']
55,In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']
56
Dữ liệu không hợp lệ
Hành vi mặc định,
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']57, là tăng khi không thể phân tích cú pháp
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']0
Vượt qua
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']58 để trả về đầu vào ban đầu khi không thể phân tích cú pháp
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']1
Vượt qua
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']59 để chuyển đổi dữ liệu không thể phân tích cú pháp thành
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']13 [không phải thời gian]
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']2
Dấu thời gian Epoch#
gấu trúc hỗ trợ chuyển đổi thời gian số nguyên hoặc số float thành
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']82 và
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']83. Đơn vị mặc định là nano giây, vì đó là cách các đối tượng
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']82 được lưu trữ bên trong. Tuy nhiên, các kỷ nguyên thường được lưu trữ trong một
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']64 khác có thể được chỉ định. Chúng được tính toán từ điểm bắt đầu được chỉ định bởi tham số
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']65
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']3
Ghi chú
Tham số
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']64 không sử dụng các chuỗi giống như tham số
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']39 đã được thảo luận ở trên ]. Các đơn vị có sẵn được liệt kê trên tài liệu cho
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']68.
Thay đổi trong phiên bản 1. 0. 0
Xây dựng một
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']82 hoặc
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']83 với dấu thời gian epoch với đối số
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']71 được chỉ định sẽ làm tăng ValueError. Nếu bạn có các kỷ nguyên trong thời gian treo tường ở múi giờ khác, bạn có thể đọc các kỷ nguyên dưới dạng dấu thời gian không có múi giờ và sau đó bản địa hóa thành múi giờ thích hợp
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']4
Ghi chú
Thời gian Epoch sẽ được làm tròn đến nano giây gần nhất
Cảnh báo
Chuyển đổi thời gian trôi nổi có thể dẫn đến kết quả không chính xác và không mong muốn. Python float có độ chính xác khoảng 15 chữ số ở dạng thập phân. Làm tròn trong quá trình chuyển đổi từ float sang độ chính xác cao
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']82 là không thể tránh khỏi. Cách duy nhất để đạt được độ chính xác chính xác là sử dụng các loại chiều rộng cố định [e. g. một int64].
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']5
Xem thêm
Sử dụng tham số gốc
Từ dấu thời gian đến kỷ nguyên #
Để đảo ngược thao tác ở trên, cụ thể là chuyển đổi từ
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']82 sang kỷ nguyên 'unix'
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']6
Chúng tôi trừ đi kỷ nguyên [nửa đêm ngày 1 tháng 1 năm 1970 UTC] và sau đó chia sàn cho “đơn vị” [1 giây]
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']7
Sử dụng tham số In [6]: dti = dti.tz_localize["UTC"]
In [7]: dti
Out[7]:
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
'2018-01-01 02:00:00+00:00'],
dtype='datetime64[ns, UTC]', freq='H']
In [8]: dti.tz_convert["US/Pacific"]
Out[8]:
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
'2017-12-31 18:00:00-08:00'],
dtype='datetime64[ns, US/Pacific]', freq='H']
65#
Sử dụng tham số
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']65, người ta có thể chỉ định một điểm bắt đầu thay thế để tạo một
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']83. Ví dụ: để sử dụng 1960-01-01 làm ngày bắt đầu
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']8
Giá trị mặc định được đặt là
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']77, giá trị mặc định là
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']78. Thường được gọi là thời gian 'unix epoch' hoặc POSIX
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']9
Đang tạo phạm vi dấu thời gian#
Để tạo chỉ mục có dấu thời gian, bạn có thể sử dụng hàm tạo
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']83 hoặc
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']80 và chuyển vào danh sách đối tượng ngày giờ
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"] In [10]: ts = pd.Series[range[len[idx]], index=idx] In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample["2H"].mean[] Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float640
Trong thực tế, điều này trở nên rất cồng kềnh vì chúng ta thường cần một chỉ mục rất dài với một số lượng lớn dấu thời gian. Nếu chúng ta cần dấu thời gian với tần suất thường xuyên, chúng ta có thể sử dụng các hàm
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']81 và
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']82 để tạo một
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']83. Tần suất mặc định cho
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']87 là ngày dương lịch trong khi mặc định cho
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']85 là ngày làm việc
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"] In [10]: ts = pd.Series[range[len[idx]], index=idx] In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample["2H"].mean[] Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float641
Các chức năng tiện lợi như
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']87 và
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']85 có thể sử dụng nhiều bí danh tần số .
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"] In [10]: ts = pd.Series[range[len[idx]], index=idx] In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample["2H"].mean[] Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float642
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']87 và
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']85 giúp dễ dàng tạo phạm vi ngày bằng cách sử dụng các kết hợp tham số khác nhau như ________ 590, ________ 591, ________ 592 và ________ 593. Ngày bắt đầu và ngày kết thúc được bao gồm một cách nghiêm ngặt, vì vậy các ngày nằm ngoài những ngày được chỉ định sẽ không được tạo
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"] In [10]: ts = pd.Series[range[len[idx]], index=idx] In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample["2H"].mean[] Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float643
Việc chỉ định
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']90,
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']91 và
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']92 sẽ tạo ra một phạm vi ngày cách đều nhau từ
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']90 đến
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']91, với số phần tử
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']92 trong kết quả là
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']83
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"] In [10]: ts = pd.Series[range[len[idx]], index=idx] In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample["2H"].mean[] Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float644
Dải tần số tùy chỉnh#
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']85 cũng có thể tạo phạm vi ngày tần suất tùy chỉnh bằng cách sử dụng tham số
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"] In [10]: ts = pd.Series[range[len[idx]], index=idx] In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample["2H"].mean[] Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6402 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: float6403. Các thông số này sẽ chỉ được sử dụng nếu một chuỗi tần số tùy chỉnh được chuyển
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"] In [10]: ts = pd.Series[range[len[idx]], index=idx] In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample["2H"].mean[] Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float645
Xem thêm
ngày làm việc tùy chỉnh
Giới hạn dấu thời gian#
Do gấu trúc biểu thị dấu thời gian ở độ phân giải nano giây nên khoảng thời gian có thể được biểu thị bằng số nguyên 64 bit bị giới hạn trong khoảng 584 năm
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"] In [10]: ts = pd.Series[range[len[idx]], index=idx] In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample["2H"].mean[] Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float646
Xem thêm
Đại diện cho các khoảng ngoài giới hạn
Lập chỉ mục #
Một trong những ứng dụng chính của
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']83 là làm chỉ mục cho các đối tượng gấu trúc. Lớp
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']83 chứa nhiều tối ưu hóa liên quan đến chuỗi thời gian
Một phạm vi ngày rộng lớn cho các khoảng thời gian bù trừ khác nhau được tính toán trước và lưu vào bộ đệm ẩn để tạo ra các phạm vi ngày tiếp theo rất nhanh [chỉ cần lấy một lát]
Dịch chuyển nhanh bằng phương thức
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"] In [10]: ts = pd.Series[range[len[idx]], index=idx] In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample["2H"].mean[] Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float64
06 trên các đối tượng gấu trúcViệc kết hợp các đối tượng
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']
83 chồng chéo có cùng tần số diễn ra rất nhanh [quan trọng đối với việc căn chỉnh dữ liệu nhanh]Truy cập nhanh vào các trường ngày thông qua các thuộc tính như
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']
48,In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']
49, v.v.Các chức năng chính quy hóa như ________ 610 và logic ________ 611 rất nhanh
Các đối tượng
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']83 có tất cả các chức năng cơ bản của các đối tượng
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']80 thông thường và một loạt các phương pháp cụ thể theo chuỗi thời gian nâng cao để xử lý tần số dễ dàng
Xem thêm
Phương pháp lập chỉ mục lại
Ghi chú
Mặc dù gấu trúc không bắt buộc bạn phải có chỉ mục ngày được sắp xếp, nhưng một số phương pháp này có thể có hành vi không mong muốn hoặc không chính xác nếu ngày chưa được sắp xếp
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']83 có thể được sử dụng như một chỉ mục thông thường và cung cấp tất cả các chức năng thông minh của nó như lựa chọn, cắt lát, v.v.
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"] In [10]: ts = pd.Series[range[len[idx]], index=idx] In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample["2H"].mean[] Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float647
Lập chỉ mục chuỗi một phần #
Ngày và chuỗi phân tích thành dấu thời gian có thể được chuyển thành tham số lập chỉ mục
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"] In [10]: ts = pd.Series[range[len[idx]], index=idx] In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample["2H"].mean[] Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float648
Để thuận tiện cho việc truy cập chuỗi thời gian dài hơn, bạn cũng có thể chuyển năm hoặc năm và tháng dưới dạng chuỗi
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"] In [10]: ts = pd.Series[range[len[idx]], index=idx] In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample["2H"].mean[] Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float649
Kiểu cắt này cũng sẽ hoạt động trên
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']03 với
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']83. Vì lựa chọn một phần chuỗi là một dạng cắt nhãn nên các điểm cuối sẽ được đưa vào. Điều này sẽ bao gồm thời gian phù hợp vào một ngày bao gồm
Cảnh báo
Lập chỉ mục các hàng
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']03 bằng một chuỗi với getitem [e. g.
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"] In [10]: ts = pd.Series[range[len[idx]], index=idx] In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample["2H"].mean[] Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6418] không được dùng nữa bắt đầu với gấu trúc 1. 2. 0 [do sự mơ hồ cho dù nó đang lập chỉ mục các hàng hay chọn một cột] và sẽ bị xóa trong phiên bản tương lai. Tương đương với
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"] In [10]: ts = pd.Series[range[len[idx]], index=idx] In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample["2H"].mean[] Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6419 [e. g.
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"] In [10]: ts = pd.Series[range[len[idx]], index=idx] In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample["2H"].mean[] Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6420] 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 vào lần đầu tiên trong tháng và bao gồm ngày và giờ cuối cùng trong tháng
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'1
Điều này chỉ định thời gian dừng bao gồm tất cả thời gian vào ngày cuối cùng
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'2
Điều này chỉ định thời gian dừng chính xác [và không giống như ở trên]
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'3
Chúng tôi đang dừng ở điểm cuối được bao gồm vì nó là một phần của chỉ mục
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'4
Chỉ mục chuỗi một phần của
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']83 cũng hoạt động trên
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']03 với
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"] In [10]: ts = pd.Series[range[len[idx]], index=idx] In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample["2H"].mean[] Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6423
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'5
Mới trong phiên bản 0. 25. 0
Cắt lát với lập chỉ mục chuỗi cũng tôn vinh phần bù UTC
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'6
lát vs. kết hợp chuẩn xác#
Cùng một chuỗi được sử dụng làm tham số lập chỉ mục có thể được coi là một lát cắt hoặc khớp chính xác tùy thuộc vào độ phân giải của chỉ mục. Nếu chuỗi kém chính xác hơn chỉ mục, nó sẽ được coi là một lát cắt, nếu không thì sẽ được coi là khớp chính xác
Xem xét một đối tượng
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']02 với chỉ số độ phân giải phút
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'7
Chuỗi dấu thời gian kém chính xác hơn một phút cho đối tượng
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']02
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'8
Một chuỗi dấu thời gian có độ phân giải phút [hoặc chính xác hơn], thay vào đó đưa ra một đại lượng vô hướng, i. e. nó không được đúc thành một lát
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'9
Nếu độ phân giải chỉ mục là thứ hai, thì dấu thời gian chính xác theo phút sẽ cho kết quả
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']02
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]40
Nếu chuỗi dấu thời gian được coi là một lát cắt, nó cũng có thể được sử dụng để lập chỉ mục cho
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']03 với
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"] In [10]: ts = pd.Series[range[len[idx]], index=idx] In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample["2H"].mean[] Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6428
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]41
Cảnh báo
Tuy nhiên, nếu chuỗi được coi là đối sánh chính xác, lựa chọn trong
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"] In [10]: ts = pd.Series[range[len[idx]], index=idx] In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample["2H"].mean[] Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6430 của
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']03 sẽ là theo cột chứ không phải theo hàng, hãy xem Khái niệm cơ bản về lập chỉ mục. For example
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"] In [10]: ts = pd.Series[range[len[idx]], index=idx] In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample["2H"].mean[] Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6431 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: float6432 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: float6433 has the same resolution as the index and there is no column with such name:
Để luôn có lựa chọn rõ ràng, cho dù hàng được coi là một lát cắt hay một lựa chọn duy nhất, hãy sử dụng
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"] In [10]: ts = pd.Series[range[len[idx]], index=idx] In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample["2H"].mean[] Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6419
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]42
Cũng lưu ý rằng độ phân giải
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']83 không thể kém chính xác hơn ngày
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]43
Lập chỉ mục chính xác#
Như đã thảo luận trong phần trước, việc lập chỉ mục một
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']83 với một phần chuỗi phụ thuộc vào “độ chính xác” của khoảng thời gian, nói cách khác, mức độ cụ thể của khoảng thời gian liên quan đến độ phân giải của chỉ mục. Ngược lại, lập chỉ mục với các đối tượng
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']82 hoặc
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']08 là chính xác, bởi vì các đối tượng có ý nghĩa chính xác. Chúng cũng tuân theo ngữ nghĩa bao gồm cả hai điểm cuối
Các đối tượng
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']82 và
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']08 này có chính xác
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"] In [10]: ts = pd.Series[range[len[idx]], index=idx] In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample["2H"].mean[] Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6441 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: float6442, mặc dù chúng không được chỉ định rõ ràng [chúng là
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"] In [10]: ts = pd.Series[range[len[idx]], index=idx] In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample["2H"].mean[] Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6443]
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]44
không có mặc định
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]45
Cắt bớt & lập chỉ mục ưa thích #
Chức năng tiện ích
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"] In [10]: ts = pd.Series[range[len[idx]], index=idx] In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample["2H"].mean[] Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6444 được cung cấp tương tự như cắt lát. Lưu ý rằng
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"] In [10]: ts = pd.Series[range[len[idx]], index=idx] In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample["2H"].mean[] Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6445 giả định một giá trị 0 cho bất kỳ thành phần ngày không xác định nào trong một
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']83 trái ngược với cắt lát trả về bất kỳ ngày khớp một phần nào
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]46
Ngay cả việc lập chỉ mục ưa thích phức tạp phá vỡ tính đều đặn của tần số
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']83 sẽ dẫn đến một
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']83, mặc dù tần số bị mất
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]47
Thành phần thời gian/ngày#
Có một số thuộc tính thời gian/ngày mà người ta có thể truy cập từ
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']82 hoặc tập hợp các dấu thời gian như
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']83
Tài sản
Sự mô tả
năm
Năm của ngày giờ
tháng
Tháng của ngày giờ
ngày
Những ngày của datetime
giờ
Giờ của ngày giờ
phút
Biên bản của ngày giờ
thứ hai
Giây của ngày giờ
phần triệu giây
Micro giây của ngày giờ
nano giây
Nano giây của ngày giờ
ngày
Trả về ngày giờ. ngày [không chứa thông tin múi giờ]
thời gian
Trả về ngày giờ. thời gian [không chứa thông tin múi giờ]
múi giờ
Trả về ngày giờ. thời gian là giờ địa phương với thông tin múi giờ
ngày của năm
Ngày thường trong năm
ngày_của_năm
Ngày thường trong năm
tuần của năm
Thứ tự tuần của năm
tuần
Thứ tự tuần của năm
ngày trong tuần
Số ngày trong tuần với Thứ hai = 0, Chủ nhật = 6
ngày trong tuần
Số ngày trong tuần với Thứ hai = 0, Chủ nhật = 6
ngày thường
Số ngày trong tuần với Thứ hai = 0, Chủ nhật = 6
phần tư
Quý của ngày. Tháng 1-tháng 3 = 1, tháng 4-tháng 6 = 2, v.v.
ngày_trong_tháng
Số ngày trong tháng của datetime
là_tháng_bắt đầu
Logic chỉ ra nếu ngày đầu tiên của tháng [được xác định theo tần suất]
là_tháng_cuối
Logic chỉ ra nếu ngày cuối cùng của tháng [được xác định theo tần suất]
is_quý_bắt đầu
Chỉ báo logic nếu ngày đầu tiên của quý [được xác định theo tần suất]
is_ quarter_end
Logic chỉ ra nếu ngày cuối cùng của quý [được xác định theo tần suất]
is_year_start
Logic chỉ ra nếu ngày đầu tiên của năm [được xác định bởi tần suất]
là_năm_cuối
Logic chỉ ra nếu ngày cuối cùng của năm [được xác định bởi tần suất]
is_leap_year
Logic chỉ ra nếu ngày thuộc về một năm nhuận
Hơn nữa, nếu bạn có một
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']02 với các giá trị kiểu dữ liệu thời gian, thì bạn có thể truy cập các thuộc tính này thông qua trình truy cập
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"] In [10]: ts = pd.Series[range[len[idx]], index=idx] In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample["2H"].mean[] Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6452, như được trình bày chi tiết trong phần trên . trình truy cập dt .
Mới trong phiên bản 1. 1. 0
Bạn có thể lấy các thành phần năm, tuần và ngày của năm ISO từ tiêu chuẩn ISO 8601
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]48
đối tượng DateOffset#
Trong các ví dụ trước, các chuỗi tần số [e. g.
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"] In [10]: ts = pd.Series[range[len[idx]], index=idx] In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample["2H"].mean[] Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6453] đã được sử dụng để chỉ định tần suất được xác định
cách ngày giờ trong
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']
83 được đặt cách nhau khi sử dụ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']
81tần số của một
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']
93 hoặcIn [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']
94
Các chuỗi tần số này ánh xạ tới một đối tượng
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']98 và các lớp con của nó. Một
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']98 tương tự như một
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']88 đại diện cho một khoảng thời gian nhưng tuân theo các quy tắc về thời lượng lịch cụ thể. Ví dụ: ngày
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']88 sẽ luôn tăng
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"] In [10]: ts = pd.Series[range[len[idx]], index=idx] In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample["2H"].mean[] Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6462 theo 24 giờ, trong khi ngày
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']98 sẽ tăng
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"] In [10]: ts = pd.Series[range[len[idx]], index=idx] In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample["2H"].mean[] Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6462 vào cùng thời điểm của ngày hôm sau cho dù một ngày có 23, 24 hay 25 giờ do tiết kiệm thời gian ban ngày. Tuy nhiên, tất cả các phân lớp
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']98 có thời lượng một giờ hoặc nhỏ hơn [
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"] In [10]: ts = pd.Series[range[len[idx]], index=idx] In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample["2H"].mean[] Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: 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,
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: float6468,
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: float6469,
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: float6470,
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: float6471] hoạt động giống như
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']88 và tôn trọng thời gian tuyệt đối
Cơ bản ________ 098 hoạt động tương tự như ________ 674 [tài liệu tương đối về đồng bằng] thay đổi ngày giờ theo khoảng thời gian lịch tương ứng được chỉ định. Toán tử số học [
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"] In [10]: ts = pd.Series[range[len[idx]], index=idx] In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample["2H"].mean[] Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6475] có thể được sử dụng để thực hiện ca
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]49
Hầu hết
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"] In [10]: ts = pd.Series[range[len[idx]], index=idx] In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample["2H"].mean[] Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6476 có chuỗi tần số liên quan hoặc bí danh bù, có thể được chuyển vào đối số từ khóa
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']93. Bạn có thể tìm thấy các giá trị bù ngày khả dụng và các chuỗi tần số liên quan bên dưới
Bù trừ ngày tháng
Chuỗi tần số
Sự 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
Không có
Lớp bù chung, mặc định là 24 giờ tuyệt đối
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"] In [10]: ts = pd.Series[range[len[idx]], index=idx] In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample["2H"].mean[] Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6479 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: float6480
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
ngày làm việc [ngày thường]
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"] In [10]: ts = pd.Series[range[len[idx]], index=idx] In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample["2H"].mean[] Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6482 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: 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ứ y mỗi tháng
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"] In [10]: ts = pd.Series[range[len[idx]], index=idx] In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample["2H"].mean[] Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: 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 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: float6491
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
lịch cuối tháng
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"] In [10]: ts = pd.Series[range[len[idx]], index=idx] In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample["2H"].mean[] Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6493
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
tháng dương lịch bắt đầu
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"] In [10]: ts = pd.Series[range[len[idx]], index=idx] In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample["2H"].mean[] Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6495 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: float6496
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
cuối tháng kinh doanh
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"] In [10]: ts = pd.Series[range[len[idx]], index=idx] In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample["2H"].mean[] Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6498 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: float6499
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'00
tháng làm việc bắt đầu
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'01 hoặc
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'02
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'03
cuối tháng kinh doanh tùy chỉnh
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'04 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'05
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'06
tháng kinh doanh tùy chỉnh bắt đầu
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'07
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'08
ngày 15 [hoặc ngày_của_tháng] và cuối tháng dương lịch
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'09
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'10
Ngày 15 [hoặc ngày_of_tháng khác] và tháng dương lịch bắt đầu
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'11
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'12
lịch cuối quý
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'13
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'14
bắt đầu quý dương lịch
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'15
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'16
cuối quý kinh doanh
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'17
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'18
bắt đầu quý kinh doanh
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'19
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'20
quý bán lẻ [hay còn gọi là tuần 52-53]
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'21
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'22
cuối năm dương lịch
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'23
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'24 hoặc
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'25
năm dương lịch bắt đầu
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'26
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'27
kinh doanh cuối năm
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'28
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'29
năm kinh doanh bắt đầu
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'30
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'31
bán lẻ [aka 52-53 tuần] năm
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'32
Không có
lễ Phục sinh
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'33
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'34
giờ làm việc
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'35
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'36
giờ làm việc tùy chỉnh
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'37
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"] In [10]: ts = pd.Series[range[len[idx]], index=idx] In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample["2H"].mean[] Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6453
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: 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'40
một giờ
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"] In [10]: ts = pd.Series[range[len[idx]], index=idx] In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample["2H"].mean[] Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: 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'42 hoặc
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'43
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: float6468
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'45
một giây
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"] In [10]: ts = pd.Series[range[len[idx]], index=idx] In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample["2H"].mean[] Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6469
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'47 hoặc
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'48
một phần nghìn giây
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"] In [10]: ts = pd.Series[range[len[idx]], index=idx] In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample["2H"].mean[] Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6470
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'50 hoặc
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'51
một phần triệu giây
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"] In [10]: ts = pd.Series[range[len[idx]], index=idx] In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample["2H"].mean[] Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6471
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'53
một nano giây
Ngoài ra,
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"] In [10]: ts = pd.Series[range[len[idx]], index=idx] In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample["2H"].mean[] Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6476 có các phương pháp
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'55 và
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'56 để di chuyển ngày tới hoặc lùi tương ứng với ngày bù hợp lệ so với ngày bù. Ví dụ: bù trừ doanh nghiệp sẽ chuyển các ngày rơi vào cuối tuần [thứ Bảy và Chủ nhật] sang thứ Hai vì bù trừ doanh nghiệp hoạt động vào các ngày trong tuần
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]70
Các thao tác này bảo toàn thông tin thời gian [giờ, phút, v.v.] theo mặc định. Để đặt lại thời gian về nửa đêm, hãy sử dụng
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'57 trước hoặc sau khi áp dụng thao tác [tùy thuộc vào việc bạn có muốn đưa thông tin thời gian vào thao tác hay không]
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]71
Độ lệch tham số #
Một số phần bù có thể được "tham số hóa" khi được tạo để dẫn đến các hành vi khác nhau. Ví dụ: phần bù
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"] In [10]: ts = pd.Series[range[len[idx]], index=idx] In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample["2H"].mean[] Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6485 để tạo dữ liệu hàng tuần chấp nhận tham số
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'59 dẫn đến ngày được tạo luôn nằm trên một ngày cụ thể trong tuần
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]72
Tùy chọn
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'60 sẽ có hiệu lực đối với phép cộng và phép trừ
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]73
Một ví dụ khác là tham số hóa
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'21 với tháng kết thúc cụ thể
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]74
Sử dụng hiệu số với In [6]: dti = dti.tz_localize["UTC"]
In [7]: dti
Out[7]:
DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00',
'2018-01-01 02:00:00+00:00'],
dtype='datetime64[ns, UTC]', freq='H']
In [8]: dti.tz_convert["US/Pacific"]
Out[8]:
DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00',
'2017-12-31 18:00:00-08:00'],
dtype='datetime64[ns, US/Pacific]', freq='H']
02 / In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"]
In [5]: dti
Out[5]:
DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00',
'2018-01-01 02:00:00'],
dtype='datetime64[ns]', freq='H']
83#
Offset có thể được sử dụng với
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']02 hoặc
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']83 để áp dụng offset cho từng phần tử
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]75
Nếu lớp offset ánh xạ trực tiếp tới một
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']88 [
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'37,
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"] In [10]: ts = pd.Series[range[len[idx]], index=idx] In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample["2H"].mean[] Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: 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,
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: float6468,
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: float6470,
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: float6469,
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: float6471] thì nó có thể được sử dụng chính xác như một
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']88 - xem Timedelta . for more examples.
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]76
Lưu ý rằng một số độ lệch [chẳng hạn như
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'15] không có triển khai véc tơ. Chúng vẫn có thể được sử dụng nhưng có thể tính toán chậm hơn đáng kể và sẽ hiển thị
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'76
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]77
ngày làm việc tùy chỉnh#
Lớp
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"] In [10]: ts = pd.Series[range[len[idx]], index=idx] In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample["2H"].mean[] Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6482 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: float6483 cung cấp lớp tham số
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"] In [10]: ts = pd.Series[range[len[idx]], index=idx] In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample["2H"].mean[] Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6480 có thể được sử dụng để tạo lịch ngày làm việc tùy chỉnh có tính đến các ngày lễ địa phương và quy ước cuối tuần địa phương
Như một ví dụ thú vị, hãy xem Ai Cập nơi có ngày cuối tuần từ Thứ Sáu đến Thứ Bảy
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]78
Hãy ánh xạ tới tên các ngày trong tuần
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]79
Lịch nghỉ lễ có thể được sử dụng để cung cấp danh sách ngày lễ. Xem phần lịch nghỉ lễ để biết thêm thông tin.
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']50
Có thể xác định chênh lệch hàng tháng theo lịch nghỉ lễ nhất định theo cách thông thường
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']51
Ghi chú
Chuỗi tần suất 'C' được sử dụng để chỉ ra rằng một CustomBusinessDay DateOffset được sử dụng, điều quan trọng cần lưu ý là vì CustomBusinessDay là một loại được tham số hóa nên các phiên bản của CustomBusinessDay có thể khác và điều này không thể phát hiện được từ chuỗi tần số 'C'. Do đó, người dùng cần đảm bảo rằng chuỗi tần số 'C' được sử dụng nhất quán trong ứng dụng của người dùng
Giờ làm việc#
Lớp ________ 733 cung cấp biểu diễn giờ làm việc trên ________ 680, cho phép sử dụng thời gian bắt đầu và kết thúc cụ thể
Theo mặc định,
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'33 sử dụng 9. 00 - 17. 00 dưới dạng giờ làm việc. Thêm
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'33 sẽ tăng
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']82 theo tần suất hàng giờ. Nếu mục tiê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']82 ngoài giờ làm việc, hãy chuyển sang giờ làm việc tiếp theo rồi tăng dần. Nếu kết quả vượt quá giờ làm việc kết thúc, số giờ còn lại sẽ được cộng vào ngày làm việc tiếp theo
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']52
Bạn cũng có thể chỉ định thời gian
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']90 và
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']91 theo từ khóa. Đối số phải là một
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'88 với một đại diện
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'89 hoặc một thể hiện
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'90. Chỉ định giây, micro giây và nano giây làm kết quả giờ làm việc trong
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'91
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']53
Vượt qua thời gian của
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']90 muộn hơn thời gian của
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']91 thể hiện giờ làm việc lúc nửa đêm. Trong trường hợp này, giờ làm việc vượt quá nửa đêm và trùng lặp sang ngày hôm sau. Giờ làm việc hợp lệ được phân biệt bằng việc nó có bắt đầu từ
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"] In [10]: ts = pd.Series[range[len[idx]], index=idx] In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample["2H"].mean[] Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6480 hợp lệ hay không
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']54
Áp dụng
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'95 và
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'96 ngoài giờ làm việc dẫn đến bắt đầu giờ làm việc tiếp theo hoặc kết thúc của ngày hôm trước. Khác với các hiệu số khác, theo định nghĩa,
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'95 có thể tạo ra các kết quả khác với
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'98
Điều này là do giờ kết thúc làm việc của một ngày bằng với giờ bắt đầu làm việc của ngày hôm sau. Ví dụ: theo giờ làm việc mặc định [9. 00 - 17. 00], không có khoảng cách [0 phút] giữa
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'99 và
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]400
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']55
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'33 coi thứ bảy và chủ nhật là ngày nghỉ. Để sử dụng các ngày lễ tùy ý, bạn có thể sử dụng phần bù
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'35, như được giải thích trong tiểu mục sau
Giờ làm việc tùy chỉnh#
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'35 là sự kết hợp giữa
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'33 và
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"] In [10]: ts = pd.Series[range[len[idx]], index=idx] In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample["2H"].mean[] Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6483, cho phép bạn chỉ định các ngày lễ tùy ý.
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'35 hoạt động giống như
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'33 ngoại trừ việc nó bỏ qua các ngày lễ tùy chỉnh được chỉ định
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']56
Bạn có thể sử dụng các đối số từ khóa được hỗ trợ bởi
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'33 và
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"] In [10]: ts = pd.Series[range[len[idx]], index=idx] In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample["2H"].mean[] Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6483
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']57
Bí danh bù trừ #
Một số bí danh chuỗi được cung cấp cho các tần số chuỗi thời gian chung hữu ích. Chúng tôi sẽ gọi những bí danh này là bí danh bù
bí danh
Sự mô tả
B
tần suất ngày làm việc
C
tần suất ngày làm việc tùy chỉnh
D
tần suất ngày dương lịch
W
tần suất hàng tuần
M
tần suất cuối tháng
SM
tần suất nửa tháng cuối [ngày 15 và cuối tháng]
BM
tần suất cuối tháng làm việc
CBM
tần suất cuối tháng kinh doanh tùy chỉnh
CÔ
tần suất bắt đầu tháng
tin nhắn
tần suất bắt đầu nửa tháng [ngày 1 và ngày 15]
BMS
tần suất bắt đầu tháng làm việc
CBMS
tần suất bắt đầu tháng làm việc tùy chỉnh
Q
tần suất cuối quý
BQ
tần suất cuối quý kinh doanh
QS
tần suất bắt đầu quý
BQS
tần suất bắt đầu quý kinh doanh
Một, Y
tần suất cuối năm
ĐỨA BÉ
tần suất cuối năm kinh doanh
NHƯ, YS
tần suất bắt đầu năm
CƠ SỞ, BẰNG
tần suất bắt đầu năm kinh doanh
BH
tần suất giờ làm việc
H
tần suất hàng giờ
T, phút
tần suất nhỏ
S
tần số thứ hai
l, ms
mili giây
bạn, chúng tôi
micro giây
N
nano giây
Ghi chú
Khi sử dụng các bí danh offset ở trên, cần lưu ý rằng các hàm như
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']81,In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']82, sẽ chỉ trả về dấu thời gian nằm trong khoảng thời gian được xác định bởiIn [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]412 vàIn [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]413. NếuIn [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]412 không tương ứng với tần suất, dấu thời gian được trả về sẽ bắt đầu ở dấu thời gian hợp lệ tiếp theo, tương tự đối vớiIn [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]413, dấu thời gian được trả về sẽ dừng ở dấu thời gian hợp lệ trước đó
Ví dụ: đối với phần bù
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]416, nếu
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]412 không phải là ngày đầu tiên của tháng, dấu thời gian được trả về sẽ bắt đầu bằng ngày đầu tiên của tháng tiếp theo. Nếu
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]413 không phải là ngày đầu tiên của tháng, dấu thời gian được trả về cuối cùng sẽ là ngày đầu tiên của tháng tương ứng
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']58
Chúng ta có thể thấy trong ví dụ trên,
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']81 và
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']82 sẽ chỉ trả về dấu thời gian hợp lệ giữa
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]412 và
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]413. Nếu đây không phải là dấu thời gian hợp lệ cho tần suất nhất định, nó sẽ chuyển sang giá trị tiếp theo cho
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]412 [tương ứng trước đó cho
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]413]
Kết hợp các bí danh#
Như chúng ta đã thấy trước đây, bí danh và đối tượng offset có thể thay thế được trong hầu hết các hàm
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']59
Bạn có thể kết hợp bù trừ trong ngày và trong ngày với nhau
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']80
Độ lệch cố định #
Đối với một số tần số, bạn có thể chỉ định hậu tố neo
bí danh
Sự mô tả
W-SUN
tần suất hàng tuần [Chủ Nhật]. Giống như 'W'
W-MON
tần suất hàng tuần [Thứ Hai]
W-TUE
tần suất hàng tuần [Thứ Ba]
W-WED
tần suất hàng tuần [Thứ Tư]
W-THU
tần suất hàng tuần [thứ Năm]
W-FRI
tần suất hàng tuần [thứ sáu]
W-SAT
tần suất hàng tuần [thứ bảy]
[B]Q[S]-DEC
tần suất hàng quý, năm kết thúc vào tháng 12. Tương tự như 'Q'
[B]Q[S]-JAN
tần suất hàng quý, năm kết thúc vào tháng 1
[B]Q[S]-THÁNG 2
tần suất hàng quý, năm kết thúc vào tháng 2
[B]Q[S]-MAR
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 4
[B]Q[S]-MAY
tần suất hàng quý, năm kết thúc vào tháng 5
[B]Q[S]-JUN
tần suất hàng quý, năm kết thúc vào tháng 6
[B]Q[S]-THÁNG 7
tần suất hàng quý, năm kết thúc vào tháng 7
[B]Q[S]-AUG
tần suất hàng quý, năm kết thúc vào tháng 8
[B]Q[S]-SEP
tần suất hàng quý, năm kết thúc vào tháng 9
[B]Q[S]-OCT
tần suất hàng quý, năm kết thúc vào tháng 10
[B]Q[S]-THÁNG 11
tần suất hàng quý, năm kết thúc vào tháng 11
[B]A[S]-DEC
tần suất hàng năm, thả neo vào cuối tháng 12. Giống như 'A'
[B]A[S]-JAN
tần suất hàng năm, neo vào cuối tháng Giêng
[B]A[S]-THÁNG 2
tần suất hàng năm, thả neo vào cuối tháng 2
[B]A[S]-MAR
tần suất hàng năm, thả neo vào cuối tháng 3
[B]A[S]-APR
tần suất hàng năm, thả neo vào cuối tháng 4
[B]A[S]-MAY
tần suất hàng năm, thả neo vào cuối tháng 5
[B]A[S]-JUN
tần suất hàng năm, thả neo vào cuối tháng 6
[B]A[S]-THÁNG 7
tần suất hàng năm, thả neo vào cuối tháng 7
[B]A[S]-AUG
tần suất hàng năm, thả neo vào cuối tháng 8
[B]A[S]-SEP
tần suất hàng năm, thả neo vào cuối tháng 9
[B]A[S]-THÁNG 10
tần suất hàng năm, thả neo vào cuối tháng 10
[B]A[S]-THÁNG 11
tần suất hàng năm, thả neo vào cuối tháng 11
Chúng có thể được sử dụng làm đối số cho
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']87,
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']85, hàm tạo cho
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']83, cũng như nhiều hàm liên quan đến chuỗi thời gian khác trong gấu trúc
Ngữ nghĩa bù đắp cố định #
Đối với những độ lệch được cố định ở đầu hoặc cuối của tần suất cụ thể [
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"] In [10]: ts = pd.Series[range[len[idx]], index=idx] In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample["2H"].mean[] Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6491,
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,
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]430, v.v.], các quy tắc sau áp dụng cho việc lăn tiến và lùi
Khi
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]431 không phải là 0, nếu ngày đã cho không nằm trên một điểm neo, nó sẽ chuyển sang điểm neo tiếp theo [trước đó] và di chuyển
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]432 thêm các bước tiến hoặc lùi
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']81
Nếu ngày đã cho nằm trên một điểm neo, nó sẽ được di chuyển _______3433 điểm về phía trước hoặc phía sau
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']82
Đối với trường hợp khi
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]434, ngày không được di chuyển nếu trên một điểm neo, nếu không, nó sẽ được chuyển tới điểm neo tiếp theo
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']83
Ngày lễ / lịch nghỉ lễ#
Ngày lễ và lịch cung cấp một cách đơn giản để xác định các quy tắc ngày lễ sẽ được sử dụng với
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"] In [10]: ts = pd.Series[range[len[idx]], index=idx] In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample["2H"].mean[] Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6483 hoặc trong phân tích khác yêu cầu tập hợp các ngày lễ được xác định trước. Lớp
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]436 cung cấp tất cả các phương thức cần thiết để trả về danh sách các ngày lễ và chỉ cần xác định
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]437 trong một lớp lịch nghỉ lễ cụ thể. Hơn nữa, các thuộc tính lớp
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]412 và
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]413 xác định phạm vi ngày các ngày lễ được tạo. Chúng nên được ghi đè lên lớp
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]436 để có phạm vi áp dụng cho tất cả các lớp con lịch.
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]441 là lịch duy nhất tồn tại và chủ yếu dùng làm ví dụ để phát triển các lịch khác
Đối với những ngày lễ diễn ra vào những ngày cố định [e. g. , Ngày tưởng niệm Hoa Kỳ hoặc ngày 4 tháng 7] một quy tắc tuân thủ xác định thời điểm lễ đó được thực hiện nếu nó rơi vào cuối tuần hoặc một số ngày không được tuân thủ khác. Các quy tắc tuân thủ được xác định là
Qui định
Sự mô tả
ngày làm việc gần nhất
di chuyển Thứ Bảy đến Thứ Sáu và Chủ nhật đến Thứ Hai
chủ nhật_đến_thứ hai
chuyển Chủ Nhật sang Thứ Hai tuần sau
next_monday_or_tuesday
di chuyển Thứ Bảy đến Thứ Hai và Chủ Nhật/Thứ Hai đến Thứ Ba
trước_thứ sáu
chuyển Thứ Bảy và Chủ Nhật sang Thứ Sáu trước đó”
Thứ hai tới
chuyển thứ bảy và chủ nhật sang thứ hai tuần sau
Ví dụ về cách xác định ngày lễ và lịch nghỉ lễ
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']84dấu
ngày trong tuần=MO[2] giống như 2 * Tuần[ngày trong tuần=2]
Sử dụng lịch này, việc tạo chỉ mục hoặc thực hiện phép tính bù trừ sẽ bỏ qua các ngày cuối tuần và ngày lễ [i. e. , Ngày tưởng niệm/ngày 4 tháng 7]. Ví dụ: bên dưới xác định bù ngày làm việc tùy chỉnh bằng cách sử dụng
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]442. Giống như bất kỳ phần bù nào khác, nó có thể được sử dụng để tạo một
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']83 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']08 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']82
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']85
Phạm vi được xác định bởi các thuộc tính lớp
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]412 và
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]413 của
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]436. Các giá trị mặc định được hiển thị bên dướ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']86
Những ngày này có thể được ghi đè bằng cách đặt các thuộc tính là ngày giờ/Dấu thời gian/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']87
Mọi lớp lịch đều có thể truy cập theo tên bằng cách sử dụng hàm
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]449 trả về một thể hiện của lớp ngày lễ. Mọi lớp lịch đã nhập sẽ tự động có sẵn bằng chức năng này. Ngoài ra,
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]450 cung cấp 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 [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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
Các phương thức phiên bản liên quan đến Chuỗi thời gian#
Dịch chuyển / tụt hậu #
Người ta có thể muốn dịch chuyển hoặc làm trễ các giá trị trong chuỗi thời gian qua lại theo thời gian. Phương pháp này là
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]451, có sẵn trên tất 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']89
Phương thức
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"] In [10]: ts = pd.Series[range[len[idx]], index=idx] In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample["2H"].mean[] Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6406 chấp nhận 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']93 có thể chấp nhận một lớp
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']98 hoặc đối tượng giố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']09 khác hoặc cũng là một bí danh offset .
Khi
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']93 được chỉ định, phương thức
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"] In [10]: ts = pd.Series[range[len[idx]], index=idx] In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample["2H"].mean[] Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6406 sẽ thay đổi tất cả các ngày trong chỉ mục thay vì thay đổi căn chỉnh của dữ liệu và 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']90
Lưu ý rằng khi
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']93 được chỉ định, mục nhập hàng đầu không còn là NaN vì dữ liệu không được sắp xếp lại
Chuyển đổi tần số #
Chức năng chính để thay đổi tần số là phương thức
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]459. Đối vớ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']83, về cơ bản, đây chỉ là một trình bao bọc mỏng nhưng tiện lợi xung quanh
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]461 để tạo ra 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']87 và gọi
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]463
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']91
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]464 cung cấp tiện ích hơn nữa để bạn có thể chỉ định phương pháp nội suy cho bất kỳ khoảng trống nào có thể xuất hiện sau khi chuyển đổi 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']92
Điền tiến/lùi#
Liên quan đến
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]464 và
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]463 là
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]467, được ghi lại trong phần dữ liệu bị thiếu .
Chuyển đổi sang Python datetimes#
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']83 có thể được chuyển đổi thành một mảng các đối tượng
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']78 gốc của Python bằng cách sử dụng phương thức
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]470
lấy mẫu lại #
pandas có chức năng đơn giản, mạnh mẽ và hiệu quả để thực hiện các thao tác lấy mẫu lại trong quá trình chuyển đổi tần số [e. g. , chuyển đổi dữ liệu thứ hai thành dữ liệu 5 phút]. Điều này 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 [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]471 là một nhóm dựa trên thời gian, theo sau là phương pháp rút gọn trên mỗi nhóm của nó. Xem một số ví dụ về sách dạy nấu ăn để biết một số chiến lược nâng cao.
Phương thức
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]471 có thể được sử dụng trực tiếp từ đối tượng
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]473, xem tài liệu theo nhóm .
Khái niệm cơ bả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']93
Hàm
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]474 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 tần số và lấy mẫu lại
Bất kỳ chức năng nào có sẵn thông qua dispatching đều khả dụng dưới dạng một phương thức của đối tượng được trả về, bao gồm
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]475,
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]476,
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]477,
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]478,
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]479,
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]480 .
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']94
Đối với lấy mẫu xuống, có thể đặt
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]485 thành 'trái' hoặc 'phải' để chỉ định phần cuối của khoảng được đó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']95
Các tham số như
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]486 được sử dụng để thao tác các nhãn kết quả.
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]486 chỉ định xem kết quả được gắn nhãn bắt đầu hay kết thúc 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']96
Cảnh báo
Các giá trị mặc định cho
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]486 và
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]485 là 'trái' cho tất cả các độ lệch tần số ngoại trừ 'M', 'A', 'Q', 'BM', 'BA', 'BQ' và 'W' đều có giá trị mặc định
Điều này có thể vô tình dẫn đến việc nhìn về phía trước, trong đó giá trị cho thời gian sau được kéo trở lại thời điểm trước đó như trong ví dụ sau với tần suấ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: float6480
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']97
Lưu ý cách giá trị của Chủ nhật được kéo về Thứ Sáu trước đó. Để có hành vi trong đó giá trị của Chủ nhật được đẩy sang Thứ hai, thay vào đó 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']98
Tham số
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]491 có thể được đặt thành 0 hoặc 1 và cho phép bạn lấy mẫu lại trục đã chỉ định cho một
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']03
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]493 có thể được đặt thành 'dấu thời gian' hoặc 'thời gian' để chuyển đổi chỉ mục kết quả thành/từ biểu diễn dấu thời gian và khoảng thời gian. Theo mặc định,
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]474 giữ lại biểu diễn đầu vào
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]495 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 khoảng thời gian [chi tiết bên dưới]. Nó chỉ định cách các khoảng thời gian tần số thấp được chuyển đổi thành các khoảng thời gian tần số cao hơn
lấy mẫu #
Đối với upsampling, bạn có thể chỉ định cách upsample và tham số
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]496 để nội suy trên các khoảng trống được 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']99
Lấy mẫu lại thưa thớt#
Chuỗi thời gian thưa thớt là chuỗi mà bạn có ít điểm hơn rất nhiều so với lượng thời gian bạn muốn lấy mẫu lại. Lấy mẫu một cách ngây thơ một chuỗi thưa thớt có khả năng 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, e. g.
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]497 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']99, khi đó các giá trị trung gian sẽ được điền bằng
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]499
Vì
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]474 là một nhóm dựa trên thời gian, nên sau đây là một phương pháp để chỉ lấy mẫu lại một cách hiệu quả các nhóm không phải là tất cả
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]499
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']00
Nếu chúng tôi muốn lấy mẫu lại cho toàn bộ 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']01
Thay vào đó, chúng tôi chỉ có thể lấy mẫu lại những nhóm mà chúng tôi có điểm 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']02
tập hợp #
Tương tự như API tổng hợp , API nhóm , . window API, a
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]702 can be selectively resampled.
Lấy mẫu lại một
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']03, mặc định sẽ hoạt động trên tất cả các cột có cùng chức nă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']03
Chúng tôi có thể chọn một hoặc nhiều cột cụ thể bằng getitem tiêu chuẩ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']04
Bạn có thể chuyển một danh sách hoặc lệnh của các hàm để thực hiện tổng hợp, xuất ra một
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']03
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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
Trên một
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']03 được lấy mẫu lại, bạn có thể chuyển một danh sách các hàm để áp dụng cho từng cột, tạo ra kết quả tổng hợp với chỉ mục 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']06
Bằng cách chuyển lệnh tới
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]706, bạn có thể áp dụng một tập hợp khác cho các cột của
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']03
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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
Tên hàm cũng có thể là chuỗi. Để một chuỗi hợp lệ, nó phải được triển khai trên đối tượng được lấy mẫu lại
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']08
Hơn nữa, bạn cũng có thể chỉ định riêng nhiều hàm tổng hợp cho từng 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']09
Nếu một
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']03 không có chỉ mục datetimelike, nhưng 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 [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]709
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']10
Tương tự, thay vào đó, nếu bạn muốn lấy mẫu lại theo cấp độ giống như thời gian của
In [9]: idx = pd.date_range["2018-01-01", periods=5, freq="H"] In [10]: ts = pd.Series[range[len[idx]], index=idx] In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample["2H"].mean[] Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6423, tên hoặc vị trí của nó có thể được chuyển đến từ khóa
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]711
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']11
Lặp lại thông qua các nhóm #
Với đối tượng
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]702 trong tay, việc lặp qua dữ liệu được nhóm là rất tự nhiên và hoạt động tương tự như
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]713
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']12
Xem Lặp qua các nhóm hoặc
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]714 để biết thêm.
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']
65 hoặc In [1]: import datetime
In [2]: dti = pd.to_datetime[
...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]]
...: ]
...:
In [3]: dti
Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]
716 để điều chỉnh điểm bắt đầu của ngăn#
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 tần suất là bội số của một ngày [như
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]717] hoặc chia đều một ngày [như
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]718 hoặc
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]719]. Đ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']65
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']13
Ở đâ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']65 với giá trị mặc định của nó [
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]722], kết quả sau
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]723 không giống nhau tùy thuộc vào thời điểm bắt đầu 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']14
Ở đây chúng ta có thể thấy rằng, khi đặ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']65 thành
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]725, kết quả sau
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]723 sẽ giống hệt nhau tùy thuộc vào thời điểm bắt đầu 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']15
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']65
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']16
Nếu cần, bạn chỉ có thể điều chỉnh các ngăn bằng
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]716 Timedelta sẽ được thêm và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']65 mặc định. 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']17
Lưu ý việc sử dụng
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]730 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']65 trong 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']65 sẽ được đặt thành giá trị đầu tiên của chuỗi thời gian
lấy mẫu ngược lại #
Mới trong phiên bản 1. 3. 0
Thay vì điều chỉnh phần đầu của các ngăn, đôi khi chúng ta cần sửa phần cuối của các ngăn để tạo mẫu lại ngược với 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']93 đã cho. Lấy mẫu lại ngược đặt
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]485 thành
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]735 theo mặc định vì giá trị cuối cùng sẽ được coi là điểm biên 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']65 thành
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]737. 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']82 cụ thể là viết tắt của kết quả lấy mẫu lại từ
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']82 hiện tại trừ đ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']93 đế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']82 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']18
Ngoài ra, trái ngược với tùy chọn
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]722,
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]743 được hỗ trợ. Điều này sẽ đặt nguồn gốc là nửa đêm trần của
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']82 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']19
Kết quả trên sử dụng
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]745 làm cạnh phải của thùng cuối cùng kể từ lần tính toán sau
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']20
Biểu diễn khoảng thời gian#
Các khoảng thời gian đều đặ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']93 trong gấu trúc trong khi chuỗi các đối tượng
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']93 đượ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']94, 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']97
Giai đoạn = Stage#
Một
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']93 đại diện cho một khoảng thời gian [e. g. , một ngày, một tháng, một quý, v.v.]. Bạn có thể chỉ định khoảng thông 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']93 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']93 đại diện cho khoảng thời gian 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']93, nên nó không thể âm như “-3D”
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']21
Cộng và trừ các số nguyên từ các khoảng thời gian sẽ dịch chuyển khoảng 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']93 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']93 [span] 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']22
Nếu 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']93 là hàng ngày hoặc cao hơn [
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]757,
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]758,
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]759,
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]760,
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]761,
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]762,
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]763], có thể thêm
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]764 và giố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']09 nếu kết quả có thể có cùng tần số. Nếu không,
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'91 sẽ được nâng lên
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']23
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']24
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']93 có các tần số khác, chỉ có thể thêm cùng một
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]764. Nếu không,
In [13]: friday = pd.Timestamp["2018-01-05"] In [14]: friday.day_name[] Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta["1 day"] In [16]: saturday.day_name[] Out[16]: 'Saturday' # Add 1 business day [Friday --> Monday] In [17]: monday = friday + pd.offsets.BDay[] In [18]: monday.day_name[] Out[18]: 'Monday'91 sẽ được nâng lên
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']25
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']26
Lấy hiệu 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']93 trường hợp có 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']27
Chu kỳ Index và period_range #
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']93 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']94, có thể được xây dựng bằng cách sử dụng chức năng thuận tiện của
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']97
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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
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']94 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']29
Truyền tần số nhân sẽ tạo ra 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']93 có nhịp nhân 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']30
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']90 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']91 là 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']93, thì chúng sẽ được sử dụng làm điểm cuối neo cho 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']94 với tần suất khớp với tần số của 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']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']31
Cũng giống như
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']83, 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']94 cũng có thể được sử dụng để lập chỉ mục cho 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']32
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']94 hỗ trợ cộng và trừ với quy tắc 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']93
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']33
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']94 có dtype riêng tên là
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]786, tham khảo Kiểu D định kỳ .
Khoảng thời gian dtypes#
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']94 có một loại dtype
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]786 tùy chỉnh. Đây là một dtype mở rộng pandas tương tự như dtype nhận biết múi giờ [
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']85].
Dtype
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]786 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']93 và được biểu diễn 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']95 như
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]793 hoặc
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]794, sử dụng chuỗi 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']34
Loại dtype
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]786 có thể được sử dụng trong
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]796. Nó cho phép một người 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']93 của một
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']94 như
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]799 và chuyển đổ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']83 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']94 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']502
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']35
Lập chỉ mục chuỗi một phần của PeriodIndex#
Period Index 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 ngày tháng và chuỗi 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']02 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']03 với
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']94, theo cách tương tự 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']83. Để biết chi tiết, hãy tham khảo Lập chỉ mục chuỗi một phần DatetimeIndex .
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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
Truyền một chuỗi biểu thị 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']94 trả về dữ liệu được 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']37
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']83, các điểm cuối sẽ được đưa vào kết quả. Ví dụ bên dưới cắt dữ liệu 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']38
Chuyển đổi tần số và lấy mẫu lại với PeriodIndex#
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']93 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']94 có thể được chuyển đổi thông qua phương pháp
In [1]: import datetime In [2]: dti = pd.to_datetime[ ...: ["1/1/2018", np.datetime64["2018-01-01"], datetime.datetime[2018, 1, 1]] ...: ] ...: In [3]: dti Out[3]: DatetimeIndex[['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None]464. 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']39
Chúng tôi có thể chuyển đổi nó thành tần suất hàng tháng. Sử dụng tham 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']512, chúng ta có thể chỉ định trả về tháng bắt đầu hay tháng 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']40
Các chữ viết tắt 's' và 'e' được cung cấp để thuận 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']41
Chuyển đổi thành một “siêu thời kỳ” [e. g. , tần suất hàng năm là siêu chu kỳ của tần suất hàng quý] sẽ tự động trả về siêu chu kỳ bao gồm khoảng 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']42
Lưu ý rằng vì chúng tôi đã chuyển đổi sang tần suất hàng năm kết thúc vào tháng 11, nên khoảng thời gian hàng tháng của tháng 12 năm 2011 thực tế là trong khoảng thời gian A-NOV 2012
Chuyển đổi thời gian với tần số cố định đặc biệt hữu ích để làm việc với nhiều dữ liệu hàng quý phổ biến đối với kinh tế, kinh doanh và các lĩnh vực khác. Nhiều tổ chức xác định các quý liên quan đến tháng mà năm tài chính của họ bắt đầu và kết thúc. Như vậy, quý 1 năm 2011 có thể bắt đầu trong năm 2010 hoặc vài tháng nữa là sang năm 2011. Thông qua các tần số cố định, gấu trúc hoạt động cho tất cả các tần số hàng quý 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']513 đế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']514
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']514 xác định các quý theo lịch thông thường
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']43
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']516 xác định năm tài chính kết thúc 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']44
Chuyển đổi giữa các biểu diễn#
Dữ liệu được đánh dấu thời gian có thể được chuyển đổi thành dữ liệu Định kỳ được chỉnh sửa bằng cách 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']517 và ngược lại bằng cách 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']518
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']45
Hãy nhớ rằng 's' và 'e' có thể được sử dụng để trả về dấu thời gian ở đầu hoặc cuối của 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']46
Chuyển đổi giữa thời gian và dấu thời gian cho phép sử dụng một số hàm số học thuận tiện. Trong ví dụ sau, chúng tôi chuyển đổi tần suất theo quý có năm kết thúc vào tháng 11 thành 9 giờ sáng của 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']47
Đại diện cho các khoảng ngoài giới hạn #
Nếu bạn có dữ liệu nằm ngoài giới hạn của
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']82, hãy xem Giới hạn 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']94 và/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']02 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']48
Để chuyển đổi từ đại diện YYYYMMDD dựa 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']523
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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
Chúng có thể dễ dàng được chuyển đổi thành một
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']94
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']50
Xử lý múi giờ#
gấu trúc cung cấp hỗ trợ phong phú để làm việc với dấu thời gian ở các múi giờ khác nhau bằng cách sử dụng thư việ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']525 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']81 hoặ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']527 từ thư viện chuẩn
Làm việc với múi giờ#
Theo mặc định, các đối tượng gấu trúc không biết múi giờ
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']51
Để bản địa hóa những ngày này thành một múi giờ [gán 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 [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']528 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']71 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']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. Bạn có thể chuyển các đối tượng 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']525 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 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 [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']525 theo mặc định. Để trả về các đối tượng 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']81, hãy thê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']537 trước chuỗi
Trong ________ 4525, bạn có thể tìm thấy danh sách các múi giờ phổ biến [và ít phổ biến hơn] bằng cách sử dụng ________ 4539
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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 sử dụng múi giờ của hệ điều hành nên không có sẵn danh sách cố định. Đối với các khu vực chung, tên giống nhưIn [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']
525
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']52
Mới trong phiên bản 0. 25. 0
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']53
Lưu ý rằng 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']542 là 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']81 và phải được xây dựng rõ ràng như một ví dụ 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']544. Trước tiên, bạn cũng có thể xây dựng các đối tượng múi giờ khác một cách rõ ràng
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']54
Để chuyển đổi một đối tượng pandas 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 [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']545
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']55
Ghi chú
Khi sử dụng múi giờ ________ 4525, _______ 083 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']82 cho đầu vào múi giờ giống nhau. Một
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']83 có thể chứa một tập 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']82 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 thể hiện 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']525 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']82 đại diện cho một thời điểm có độ lệch 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']56
Cảnh báo
Cảnh giác với chuyển đổi giữa các thư viện. Đối với một số 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']525 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']81 có các định nghĩa khác nhau về múi giờ. Đây là một vấn đề đối với các múi giờ bất thường hơn là đối với các múi giờ 'tiêu chuẩn' 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']555
Cảnh báo
Xin lưu ý rằng định nghĩa múi giờ giữa các phiên bản của 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 sự cố 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 trên một phiên bản khác. Xem tại đây để biết cách xử lý tình huống như vậy.
Cảnh báo
Đối với 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']525, việc chuyển trực tiếp đối tượng múi giờ 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']78 là không chính xác [e. g. ,
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']558. Thay vào đó, ngày giờ cần được bản địa hóa bằng cách sử dụng 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']559 trên đối tượng 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']525
Cảnh báo
Xin lưu ý rằng đối với các thời điểm trong tương lai, bất kỳ thư viện múi giờ nào cũng không thể đảm bảo chuyển đổi chính xác giữa các múi giờ [và UTC] vì phần bù của múi giờ từ UTC có thể bị thay đổi bởi chính phủ tương ứng
Cảnh báo
Nếu bạn đang sử dụng các ngày sau 2038-01-18, do các thiếu sót hiện tại trong các thư viện cơ bản do sự cố năm 2038 gây ra, các điều chỉnh giờ mùa hè [DST] cho các ngày nhận biết múi giờ sẽ không được áp dụng. Nếu và khi các thư viện cơ bản được khắc phục, quá trình chuyển đổi DST sẽ được áp dụng
Ví dụ: đối với hai ngày thuộc Giờ mùa hè của Anh [và thường là GMT+1], cả hai xác nhận sau đây đều được đánh giá là đú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
Dưới mui xe, tất cả các dấu thời gian được lưu trữ trong UTC. Các giá trị từ một múi giờ nhận 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']83 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']82 sẽ có các trường của chúng [ngày, giờ, phút, v.v. ] được bản địa hóa theo múi giờ. Tuy nhiên, các dấu thời gian có cùng giá trị UTC vẫn được coi là bằng nhau ngay cả khi chúng ở các 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']58
Các hoạt động giữa
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']02 ở các múi giờ khác nhau sẽ mang lại UTC
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']02, căn chỉnh dữ liệu trên dấu thời gian UTC
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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óa thông tin múi giờ, 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']565 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']566.
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']565 sẽ xóa múi giờ mang lại biểu thị giờ địa phươ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']566 sẽ xóa múi giờ sau khi chuyển đổi sang giờ UTC
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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
Nếp gấp#
Mới trong phiên bản 1. 1. 0
Đối với những thời điểm không rõ ràng, gấu trúc hỗ trợ chỉ định rõ ràng đối số lần chỉ dành cho từ khóa. Do thời gian tiết kiệm ánh sáng ban ngày, một giờ đồng hồ treo tường có thể xảy ra hai lần khi chuyển từ giờ mùa hè sang mùa đông; . Fold chỉ được hỗ trợ để xây dựng 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 ngây thơ [xem tài liệu về thời gian để 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']82 hoặc để xây dựng từ các thành phần [xem bên dưới]. Chỉ các múi giờ 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']81 được hỗ trợ [xem tài liệu dateutil để biết các phương thức 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']81 xử lý các múi giờ không rõ ràng] vì các múi giờ 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']525 không hỗ trợ fold [xem tài liệu pytz để biết chi tiết về cách
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']525 xử lý các múi giờ không rõ ràng]. Để bản địa hóa một ngày giờ mơ hồ 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']525, vui lòng 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']576. Nói chung, chúng tôi khuyên bạn nên dựa 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']576 khi bản địa hóa các mốc thời gian không rõ ràng nếu bạn cần kiểm soát trực tiếp cách chúng được xử 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']61
Thời điểm mơ hồ khi bản địa hó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']528 có thể không xác định được độ lệch UTC của dấu thời gian vì giờ tiết kiệm ánh sáng ban ngày [DST] trong múi giờ địa phương khiến một số thời điểm xảy ra hai lần trong vòng một ngày [“đồng hồ lùi lại”]. Lựa chọn tiếp theo đã khả thi
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']
579. Tăng mộtIn [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']
580 [hành vi 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']
581. Cố gắng xác định độ lệch chính xác dựa trên tính đơn điệu của dấu thời gianIn [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']
582. Thay thế thời gian 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']
13In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']
584.In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']
585 đại diện cho thời gian DST,In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']
586 đại diện cho thời gian không phải DST. Một mảng giống như các giá trịIn [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']
584 đượ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']62
Điều này sẽ thất bại vì có những thời điểm không rõ rà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']588]
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']63
Xử lý những thời điểm mơ hồ này bằng cách chỉ định những điều sau đâ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']64
Thời gian không tồn tại khi bản địa hóa #
Quá trình chuyển đổi DST cũng có thể thay đổi giờ địa phương trước 1 giờ, tạo ra giờ địa phương không tồn tại [“đồng hồ lò xo tiến lên”]. Hành vi bản địa hóa một chuỗi thời gian không tồn tại thời gian có thể được kiểm soát bởi đối số ________ 4589. Lựa chọn tiếp theo đã khả thi
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']
579. Tăng mộtIn [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']
591 [hành vi 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']
582. 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']
13In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']
594. Dịch chuyển thời gian không tồn tại tới thời gian thực gần nhấtIn [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']
595. Chuyển thời gian không tồn tại về thời gian thực gần nhấtđối tượng múi giờ. Thay đổi thời gian không tồn tại theo thời lượng timedelta
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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
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']66
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']13 hoặc thay đổ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']67
Múi giờ Chuỗi hoạt động#
Một
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']02 với các giá trị ngây thơ của múi giờ được biểu thị bằng một dtype 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']84
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']68
Một
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']02 với các giá trị nhận biết múi giờ được biểu thị bằng một dtype 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']85 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']71 là 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']69
Cả hai thông tin múi giờ
In [6]: dti = dti.tz_localize["UTC"] In [7]: dti Out[7]: DatetimeIndex[['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H'] In [8]: dti.tz_convert["US/Pacific"] Out[8]: DatetimeIndex[['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H']02 này đều 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: float6452, xem phần trình truy cập dt .
Ví dụ: để bản địa hóa và chuyển đổi một dấu ngây thơ sang nhận biết múi giờ
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']70
Thông tin múi giờ cũng có thể được thao tác bằng phương phá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']804. Phương pháp này có thể chuyển đổi giữa các loại 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']71
Ghi chú
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']805 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']02, trả về một mảng dữ liệu NumPy. NumPy hiện không hỗ trợ múi giờ [mặc dù nó đang in theo múi giờ địa phương. ], do đó, một mảng đối tượng Dấu thời gian được trả về cho dữ liệu nhận biết múi giờ
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']72
Bằng cách chuyển đổi thành một mảng đối tượng Dấu thời gian, nó sẽ bảo toàn thông tin múi giờ. Ví dụ: khi chuyển đổi trở lại Sê-ri
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: 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
Tuy nhiên, nếu bạn muốn một mảng NumPy
In [4]: dti = pd.date_range["2018-01-01", periods=3, freq="H"] In [5]: dti Out[5]: DatetimeIndex[['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H']84 thực tế [với các giá trị được chuyển đổi thành UTC] thay vì một mảng đối tượng, bạn có thể chỉ định đối 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']808