Hướng dẫn python csv datetime format - định dạng ngày giờ trong python csv
Tôi đã có một dữ liệu trong đó nó chỉ có ngày (yyyy-mm-dd) và thời gian (hh.mm). Tôi đang gặp lỗi cho định dạng DateTime không khớp. Show
Tôi muốn chuyển đổi dữ liệu hiện có của mình thành định dạng tiêu chuẩn bằng thư viện Python (gandas). Xin vui lòng đưa ra một giải pháp thích hợp cho nó. data = btfeed.genericcsvdata (dataname = '2017 bnf.csv',
) ValueError: Dữ liệu thời gian '2017-01-02T10' không khớp với định dạng '%y-%m-%dt%h:%m' Input (CSV): 2017-01-02,09: 08 Đầu ra dự kiến: 2017-01-02 09: 08: 00+05: 30 Ngày thời gian trong tệp Pandas to CSV với các ví dụ về mã Giải pháp đến ngày thời gian trong tệp PANDAS đến CSV sẽ được trình bày bằng cách sử dụng các ví dụ trong bài viết này. try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e) Như chúng ta đã thấy, ngày trong các vấn đề về tệp PANDAS đến CSV đã được giải quyết bằng cách sử dụng một số trường hợp khác nhau. Làm cách nào để chuyển đổi ngày thành tệp CSV trong Python?Tạo CSV và thêm dấu thời gian
Làm cách nào để lưu dấu thời gian trong CSV?Hướng dẫn video để định dạng dữ liệu ngày và ngày trong tệp CSV
Làm cách nào để đọc tệp CSV từ DateTime trong Python?Để tự động đọc ngày từ tệp CSV với Python Pandas, chúng ta có thể đặt đối số DATE_PARSER. để gọi read_csv với tệp để đọc. Và chúng tôi đặt parse_dates thành 'dateTime' thành các ngày phân tích cú pháp với DateTime .17-APR-2022 CSV có thể có định dạng ngày không?Các điều kiện. CSV được mở trong Microsoft Excel. Định dạng ngày được nhập trong DD/mm/yyyy, nhưng Excel thay đổi định dạng năm thành hai chữ số. Ví dụ: 08/09/16 được liệt kê trong CSV hiển thị là "ngày 8 tháng 9, 16" trên hồ sơ người dùng đã nhập.23-OCT-2021 Làm cách nào để phân tách ngày và giờ trong tệp CSV trong Python?Chọn Văn bản vào các cột và chọn không gian cho trường được phân tách bằng trường. Theo mặc định, tùy chọn Tab sẽ được bật cho trường được phân tách, vì vậy bạn sẽ cần bỏ chọn sau khi chọn không gian. Chọn cột thời gian thu thập và sau đó chọn Ngày (MDY) từ thả xuống loại cột. Khi bạn đã hoàn tất, bấm OK. Làm cách nào để tạo tệp CSV bằng gấu trúc?Bằng cách sử dụng gấu trúc. Khung dữ liệu. Phương thức TO_CSV () Bạn có thể viết/lưu/xuất một tệp dữ liệu gấu trúc sang tệp CSV. Theo mặc định, TO_CSV () Phương thức Xuất DataFrame sang tệp CSV với dấu phân cách dấu phẩy và chỉ mục hàng làm cột đầu tiên.20-JAN-2022 Làm cách nào để định dạng một ngày và thời gian ngày trong tệp CSV?Hướng dẫn video để định dạng dữ liệu ngày và ngày trong tệp CSV
Làm cách nào để đọc tệp CSV từ DateTime trong Python?Để tự động đọc ngày từ tệp CSV với Python Pandas, chúng ta có thể đặt đối số DATE_PARSER. để gọi read_csv với tệp để đọc. Và chúng tôi đặt parse_dates thành 'dateTime' thành các ngày phân tích cú pháp với DateTime .17-APR-2022
Bằng cách sử dụng gấu trúc. Khung dữ liệu. Phương thức TO_CSV () Bạn có thể viết/lưu/xuất một tệp dữ liệu gấu trúc sang tệp CSV. Theo mặc định, TO_CSV () Phương thức Xuất DataFrame sang tệp CSV với dấu phân cách dấu phẩy và chỉ mục hàng làm cột đầu tiên.20-JAN-2022Làm cách nào để định dạng một ngày và thời gian ngày trong tệp CSV?
Nhập bảng điều khiển trên hệ thống của bạn.Trong đồng hồ và khu vực, nhấp vào định dạng ngày thay đổi, thời gian hoặc số. Gandas chứa các khả năng và tính năng rộng lớn để làm việc với dữ liệu chuỗi thời gian cho tất cả các miền. Sử dụng DTYPES try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)73 và try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)74, Pandas đã củng cố một số lượng lớn các tính năng từ các thư viện Python khác như try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)75 cũng như tạo ra một số lượng lớn chức năng mới để thao tác dữ liệu chuỗi thời gian. Ví dụ: Pandas hỗ trợ: Thông tin chuỗi thời gian phân tích từ các nguồn và định dạng khác nhau In [1]: import datetime In [2]: dti = pd.to_datetime( ...: ["1/1/2018", np.datetime64("2018-01-01"), datetime.datetime(2018, 1, 1)] ...: ) ...: In [3]: dti Out[3]: DatetimeIndex(['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None) Tạo chuỗi các ngày và thời gian tần số cố định In [4]: dti = pd.date_range("2018-01-01", periods=3, freq="H") In [5]: dti Out[5]: DatetimeIndex(['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H') Thao tác và chuyển đổi thời gian ngày với thông tin thời gian In [6]: dti = dti.tz_localize("UTC") In [7]: dti Out[7]: DatetimeIndex(['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H') In [8]: dti.tz_convert("US/Pacific") Out[8]: DatetimeIndex(['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H') Lấy mẫu lại hoặc chuyển đổi chuỗi thời gian thành một tần số cụ thể In [9]: idx = pd.date_range("2018-01-01", periods=5, freq="H") In [10]: ts = pd.Series(range(len(idx)), index=idx) In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample("2H").mean() Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float64 Thực hiện số học ngày và thời gian với số thời gian tuyệt đối hoặc tương đối In [13]: friday = pd.Timestamp("2018-01-05") In [14]: friday.day_name() Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta("1 day") In [16]: saturday.day_name() Out[16]: 'Saturday' # Add 1 business day (Friday --> Monday) In [17]: monday = friday + pd.offsets.BDay() In [18]: monday.day_name() Out[18]: 'Monday' Pandas cung cấp một bộ công cụ tương đối nhỏ gọn và khép kín để thực hiện các tác vụ trên và hơn thế nữa. Overview#Pandas nắm bắt 4 khái niệm liên quan đến thời gian chung:
Đối với dữ liệu chuỗi thời gian, thông thường của nó để thể hiện thành phần thời gian trong chỉ số của In [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)00 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)01 để có thể thực hiện các thao tác đối với phần tử thời gian. In [19]: pd.Series(range(3), index=pd.date_range("2000", freq="D", periods=3)) Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int64 Tuy nhiên, In [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)00 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)01 cũng có thể trực tiếp hỗ trợ thành phần thời gian dưới dạng dữ liệu. In [20]: pd.Series(pd.date_range("2000", freq="D", periods=3)) Out[20]: 0 2000-01-01 1 2000-01-02 2 2000-01-03 dtype: datetime64[ns] In [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)00 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)01 có hỗ trợ và chức năng kiểu dữ liệu mở rộng cho 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)06, 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)07 và try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)91 khi được chuyển vào các hàm tạo đó. Tuy nhiên, dữ liệu try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)96 sẽ được lưu trữ dưới dạng 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)10. In [21]: pd.Series(pd.period_range("1/1/2011", freq="M", periods=3)) Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series([pd.DateOffset(1), pd.DateOffset(2)]) Out[22]: 0 Cuối cùng, gấu trúc đại diện cho thời gian ngày null, thời gian đồng bằng và thời gian kéo dài dưới dạng In [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)11, rất hữu ích cho việc biểu diễn ngày bị thiếu hoặc null như các giá trị và hoạt động tương tự như In [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)12 cho dữ liệu nổi. try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)0 Dấu thời gian so với thời gian kéo dài#Dữ liệu theo thời gian là loại dữ liệu chuỗi thời gian cơ bản nhất liên kết các giá trị theo thời gian. Đối với các đối tượng gấu trúc, nó có nghĩa là sử dụng các thời điểm. try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)1 Tuy nhiên, trong nhiều trường hợp, việc liên kết những thứ như biến thay đổi với khoảng thời gian là điều tự nhiên hơn. Khoảng thời gian được biểu thị bằng try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)91 có thể được chỉ định rõ ràng hoặc được suy ra từ định dạng chuỗi DateTime. Ví dụ: try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)2 try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)80 và try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)91 có thể đóng vai trò là một chỉ số. Danh sách của try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)80 và try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)91 được tự động ép buộc lần lượt được ép vào try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)81 và try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)92. try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)3 Gandas cho phép bạn nắm bắt cả hai biểu diễn và chuyển đổi giữa chúng. Dưới mui xe, Pandas đại diện cho dấu thời gian bằng cách sử dụng các trường hợp try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)80 và các chuỗi dấu thời gian bằng cách sử dụng các trường hợp try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)81. Đối với các khoảng thời gian thường xuyên, Pandas sử dụng các đối tượng try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)91 cho các giá trị vô hướng và try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)92 cho các chuỗi nhịp. Hỗ trợ tốt hơn cho các khoảng không đều với điểm khởi đầu và điểm cuối tùy ý đang xuất hiện trong các bản phát hành trong tương lai. Chuyển đổi thành dấu thời gian#Để chuyển đổi đối tượng In [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)00 hoặc giống như danh sách của các đối tượng giống như ngày, ví dụ: Chuỗi, kỷ nguyên hoặc hỗn hợp, bạn có thể sử dụng hàm try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)84. Khi được thông qua 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)00, điều này sẽ trả 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)00 (có cùng chỉ mục), trong khi giống như danh sách được chuyển đổi thành try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)81: try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)4 Nếu bạn sử dụng ngày bắt đầu với ngày đầu tiên (tức là kiểu châu Âu), bạn có thể vượt qua cờ In [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)29: try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)5 Cảnh báo Bạn thấy trong ví dụ trên rằ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)29 không nghiêm ngặt. Nếu một ngày có thể được phân tích cú pháp với ngày đầu tiên, nó sẽ được phân tích cú pháp như thể In [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)29 là sai, và trong trường hợp phân tích các chuỗi ngày được phân định (ví dụ: In [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)32) thì một cảnh báo cũng sẽ được nêu ra. Nếu bạn chuyển một chuỗi duy nhất cho try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)84, nó sẽ trả về một try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)80. try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)80 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 [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)29 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)37, vì vậy hãy sử dụng try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)84 nếu chúng được yêu cầu. try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)6 Bạn cũng có thể sử dụng Trình xây dựng try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)81 trực tiếp: try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)7 Chuỗi ‘suy luận có thể được truyền để đặt tần số của chỉ mục là tần số được suy ra khi tạo: try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)8 Cung cấp một đối số định dạng#Ngoài chuỗi DateTime cần thiết, một đối 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)37 có thể được thông qua để đảm bảo phân tích cú pháp cụ thể. Điều này cũng có khả năng tăng tốc độ chuyển đổi đáng kể. try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)9 Để biết thêm thông tin về các lựa chọn có sẵn khi chỉ định tùy chọn In [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)37, hãy xem tài liệu DateTime Python. Lắp ráp DateTime từ nhiều cột DataFrame#Bạn cũng có thể vượt qua In [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)01 của các cột số nguyên hoặc chuỗi để lắp ráp 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)00 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)44. 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)0 Bạn chỉ có thể vượt qua các cột mà bạn cần lắp rá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)1 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 Tìm kiếm các chỉ định tiêu chuẩn của thành phần DateTime trong tên cột, bao gồm:
Dữ liệu không hợp lệ#Hành vi 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)55, là nâng cao khi không thể ghi lạ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)2 Vượt qua 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)56 để trả về đầu vào ban đầu khi không thể ghi nhậ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)3 Vượt qua 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)57 để chuyển đổi dữ liệu không thể ghi lại 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)11 (không phải 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 Thời gian thời gian sử dụng#Gấu trúc hỗ trợ chuyển đổi số nguyên hoặc thời gian nổi sang try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)80 và try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)81. Đơn vị mặc định là nano giây, vì đó là cách các đối tượng try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)80 đượ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 [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)62 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 [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)63. 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)5 Ghi chú 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)62 không sử dụng cùng một chuỗi với 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)37 đã đượ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 [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)66.above). The available units are listed on the documentation for In [1]: import datetime In [2]: dti = pd.to_datetime( ...: ["1/1/2018", np.datetime64("2018-01-01"), datetime.datetime(2018, 1, 1)] ...: ) ...: In [3]: dti Out[3]: DatetimeIndex(['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None)66. Đã thay đổi trong phiên bản 1.0.0. Xây dựng một try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)80 hoặc try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)81 với dấu thời gian kỷ nguyên với đối 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)69 được chỉ định sẽ tăng giá trị. Nếu bạn có kỷ nguyên trong thời gian tường trong một múi giờ khác, bạn có thể đọc các kỷ nguyên dưới dạng dấu thời gian ngây thơ theo thời gian và sau đó định vị vào múi giờ thích hợp: In [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)6 Ghi chú 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)62 không sử dụng cùng một chuỗi với 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)37 đã đượ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 [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)66. Đã thay đổi trong phiên bản 1.0.0. Xây dựng một try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)80 hoặc try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)81 với dấu thời gian kỷ nguyên với đối 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)69 được chỉ định sẽ tăng giá trị. Nếu bạn có kỷ nguyên trong thời gian tường trong một múi giờ khác, bạn có thể đọc các kỷ nguyên dưới dạng dấu thời gian ngây thơ theo thời gian và sau đó định vị vào múi giờ thích hợp:Python floats have about 15 digits precision in decimal. Rounding during conversion from float to high precision try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)80 is unavoidable. The only way to achieve exact precision is to use a fixed-width types (e.g. an int64). 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 Thời đại kỷ nguyên sẽ được làm tròn đến nano giây gần nhất.Cảnh báo In [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)8 Chuyển đổi thời gian Epoch nổi có thể dẫn đến kết quả không chính xác và bất ngờ. Phao Python có độ chính xác khoảng 15 chữ số trong thập phân. Làm tròn trong quá trình chuyển đổi từ phao sang độ chính xác cao try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)80 là không thể tránh khỏi. Cách duy nhất để đạt được độ chính xác chính xác là sử dụng một loại chiều rộng cố định (ví dụ: INT64). In [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)9 Từ dấu thời gian đến kỷ nguyên#Để đảo ngược hoạt động từ trên, cụ thể là chuyển đổi từ try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)80 sang một kỷ nguyên ‘unix. In [4]: dti = pd.date_range("2018-01-01", periods=3, freq="H") In [5]: dti Out[5]: 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 Chúng tôi trừ đi kỷ nguyên (nửa đêm lúc 1 tháng 1 năm 1970 UTC) và sau đó phân chia sàn cho đơn vị trực tuyến (1 giây). In [4]: dti = pd.date_range("2018-01-01", periods=3, freq="H") In [5]: dti Out[5]: 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 Sử dụng 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) 63#Sử dụng 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)63, người ta có thể chỉ định điểm bắt đầu thay thế để tạo try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)81. Ví dụ: sử dụng 1960-01-01 làm ngày bắt đầu: In [4]: dti = pd.date_range("2018-01-01", periods=3, freq="H") In [5]: dti Out[5]: DatetimeIndex(['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H')2 Mặc định được đặt 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)75, mặc định 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)76. Thường được gọi là ‘Unix Epoch, hoặc thời gian POSIX.calendar day while the default for In [1]: import datetime In [2]: dti = pd.to_datetime( ...: ["1/1/2018", np.datetime64("2018-01-01"), datetime.datetime(2018, 1, 1)] ...: ) ...: In [3]: dti Out[3]: DatetimeIndex(['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None)83 is a business day: Tạo ra phạm vi dấu thời gian# Để tạo một chỉ mục có dấu thời gian, bạn có thể sử dụng hàm tạo try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)81 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)78 và truyền trong danh sách các đối tượng DateTime:frequency aliases: In [4]: dti = pd.date_range("2018-01-01", periods=3, freq="H") In [5]: dti Out[5]: 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 Trong thực tế, điều này trở nên rất cồng kềnh vì chúng ta thường cần một chỉ số rất dài với một số lượng lớn dấu thời gian. Nếu chúng ta cần dấu thời gian trên tần số thường xuyên, chúng ta có thể sử dụng các hàm In [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 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)80 để tạo try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)81. Tần suất mặc định cho try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)85 là một ngày lịch trong khi 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)83 là một ngày làm việ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')5 In [4]: dti = pd.date_range("2018-01-01", periods=3, freq="H") In [5]: dti Out[5]: 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 In [4]: dti = pd.date_range("2018-01-01", periods=3, freq="H") In [5]: dti Out[5]: 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 Các chức năng tiện lợi như try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)85 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) 83 có thể sử dụng nhiều bí danh tần số:try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)85 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)83 giúp dễ dàng tạo ra một phạm vi ngày sử dụng các kết hợp các tham số khác nhau như In [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)88, 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)89, 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)90 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)91. Ngày bắt đầu và kết thúc được bao gồm nghiêm ngặt, vì vậy ngày bên ngoài những ngày được chỉ định sẽ không được tạo ra: In [4]: dti = pd.date_range("2018-01-01", periods=3, freq="H") In [5]: dti Out[5]: 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 Giới hạn dấu thời gian#Vì gấu trúc đại diện cho dấu thời gian ở độ phân giải nano giây, khoảng thời gian có thể được biểu diễn bằng số nguyên 64 bit bị giới hạn trong khoảng 584 nă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')8 Indexing#Một trong những ứng dụng chính cho try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)81 là một chỉ số cho các đối tượng gấu trúc. Lớp try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)81 chứa nhiều tối ưu hóa liên quan đến chuỗi thời gian:
try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)81 Các đối tượng có tất cả các chức năng cơ bản của các đố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)78 thông thường và một smorgasbord của các phương pháp cụ thể chuỗi thời gian tiên tiến để xử lý tần số dễ dàng. Ghi chú Mặc dù gấu trúc không buộc bạn phải có chỉ số ngày được sắp xếp, một số phương pháp này có thể có hành vi bất ngờ hoặc không chính xác nếu ngày không được phân loại. try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)81 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 [4]: dti = pd.date_range("2018-01-01", periods=3, freq="H") In [5]: dti Out[5]: 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 Lập chỉ mục chuỗi một phần#Ngày và chuỗi phân tích thời gian có thể được truyền dưới dạng tham số lập chỉ mục: In [6]: dti = dti.tz_localize("UTC") In [7]: dti Out[7]: DatetimeIndex(['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H') In [8]: dti.tz_convert("US/Pacific") Out[8]: DatetimeIndex(['2017-12-31 16:00:00-08: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 Để cung cấp sự tiện lợi cho việc truy cập chuỗi thời gian dài hơn, bạn cũng có thể vượt qua trong năm hoặc năm và tháng dưới dạng chuỗi: In [6]: dti = dti.tz_localize("UTC") In [7]: dti Out[7]: DatetimeIndex(['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H') In [8]: dti.tz_convert("US/Pacific") Out[8]: DatetimeIndex(['2017-12-31 16:00:00-08: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 Loại cắt lát này cũng sẽ hoạt động trê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)01 với try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)81. Vì lựa chọn chuỗi một phần là một hình thức cắt nhãn, các điểm cuối sẽ được bao gồm. Điều này sẽ bao gồm thời gian phù hợp vào một ngày bao gồm:will be included. This would include matching times on an included date: Cảnh báo Lập chỉ mục In [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)01 Các hàng với một chuỗi duy nhất với getItem (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')16) không được khởi động với Pandas 1.2.0 (với sự mơ hồ cho dù nó đang lập chỉ mục các hàng hoặc chọn một cột) và sẽ bị xóa trong phiên bản trong tương lai. Tương đương với In [4]: dti = pd.date_range("2018-01-01", periods=3, freq="H") In [5]: dti Out[5]: DatetimeIndex(['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H')17 (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')18) vẫn được hỗ trợ. In [6]: dti = dti.tz_localize("UTC") In [7]: dti Out[7]: DatetimeIndex(['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H') In [8]: dti.tz_convert("US/Pacific") Out[8]: DatetimeIndex(['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H')2 Điều này bắt đầu từ lần đầu tiên trong tháng và bao gồm ngày và giờ cuối cùng trong tháng: In [6]: dti = dti.tz_localize("UTC") In [7]: dti Out[7]: DatetimeIndex(['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H') In [8]: dti.tz_convert("US/Pacific") Out[8]: DatetimeIndex(['2017-12-31 16:00:00-08: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 Điều này chỉ định thời gian dừng bao gồm tất cả các lần vào ngày cuối cùng:that includes all of the times on the last day: In [6]: dti = dti.tz_localize("UTC") In [7]: dti Out[7]: DatetimeIndex(['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H') In [8]: dti.tz_convert("US/Pacific") Out[8]: DatetimeIndex(['2017-12-31 16:00:00-08: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 Điều này chỉ định thời gian dừng chính xác (và không giống như ở trên):exact stop time (and is not the same as the above): In [6]: dti = dti.tz_localize("UTC") In [7]: dti Out[7]: DatetimeIndex(['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H') In [8]: dti.tz_convert("US/Pacific") Out[8]: DatetimeIndex(['2017-12-31 16:00:00-08: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 Chúng tôi đang dừng lại ở điểm cuối được bao gồm vì nó là một phần của chỉ mục: In [6]: dti = dti.tz_localize("UTC") In [7]: dti Out[7]: DatetimeIndex(['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H') In [8]: dti.tz_convert("US/Pacific") Out[8]: DatetimeIndex(['2017-12-31 16:00:00-08: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 try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)81 Lập chỉ mục chuỗi một phần cũng hoạt động trê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)01 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')21: In [6]: dti = dti.tz_localize("UTC") In [7]: dti Out[7]: DatetimeIndex(['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H') In [8]: dti.tz_convert("US/Pacific") Out[8]: DatetimeIndex(['2017-12-31 16:00:00-08: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 Mới trong phiên bản 0.25.0. Cắt với lập chỉ mục chuỗi cũng tôn vinh UTC Offset. In [6]: dti = dti.tz_localize("UTC") In [7]: dti Out[7]: DatetimeIndex(['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H') In [8]: dti.tz_convert("US/Pacific") Out[8]: DatetimeIndex(['2017-12-31 16:00:00-08: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 Lát so với khớp chính xác#Cùng một chuỗi được sử dụng làm tham số lập chỉ mục có thể được coi là một lát cắt hoặc là một khớp chính xác tùy thuộc vào độ phân giải của chỉ mục. Nếu chuỗi kém chính xác hơn chỉ số, nó sẽ được coi là một lát cắt, nếu không là một kết hợp chính xác. Xem xét một đối tượng In [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)00 với chỉ số độ phân giải phú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')9 Một chuỗi dấu thời gian kém chính xác hơn một phút cho đố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)00. In [9]: idx = pd.date_range("2018-01-01", periods=5, freq="H") In [10]: ts = pd.Series(range(len(idx)), index=idx) In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample("2H").mean() Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float640 Một chuỗi dấu thời gian với độ phân giải phút (hoặc chính xác hơn), thay vào đó là vô hướng, tức là nó không được đúc thành một lát cắt. In [9]: idx = pd.date_range("2018-01-01", periods=5, freq="H") In [10]: ts = pd.Series(range(len(idx)), index=idx) In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample("2H").mean() Out[12]: 2018-01-01 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 Nếu độ phân giải chỉ mục là thứ hai, thì dấu thời gian chính xác phút 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)00. In [9]: idx = pd.date_range("2018-01-01", periods=5, freq="H") In [10]: ts = pd.Series(range(len(idx)), index=idx) In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample("2H").mean() Out[12]: 2018-01-01 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 Nếu chuỗi dấu thời gian được coi là một lát cắt, nó cũng có thể được sử dụng để lập chỉ mục In [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)01 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')26. In [9]: idx = pd.date_range("2018-01-01", periods=5, freq="H") In [10]: ts = pd.Series(range(len(idx)), index=idx) In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample("2H").mean() Out[12]: 2018-01-01 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 Cảnh báo Lập chỉ mụ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)01 Các hàng với một chuỗi duy nhất với getItem (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')16) không được khởi động với Pandas 1.2.0 (với sự mơ hồ cho dù nó đang lập chỉ mục các hàng hoặc chọn một cột) và sẽ bị xóa trong phiên bản trong tương lai. Tương đương với In [4]: dti = pd.date_range("2018-01-01", periods=3, freq="H") In [5]: dti Out[5]: DatetimeIndex(['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H')17 (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')18) vẫn được hỗ trợ.Indexing Basics. For example In [4]: dti = pd.date_range("2018-01-01", periods=3, freq="H") In [5]: dti Out[5]: DatetimeIndex(['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H')29 will raise In [4]: dti = pd.date_range("2018-01-01", periods=3, freq="H") In [5]: dti Out[5]: 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 as In [4]: dti = pd.date_range("2018-01-01", periods=3, freq="H") In [5]: dti Out[5]: DatetimeIndex(['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H')31 has the same resolution as the index and there is no column with such name: In [6]: dti = dti.tz_localize("UTC") In [7]: dti Out[7]: DatetimeIndex(['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H') In [8]: dti.tz_convert("US/Pacific") Out[8]: DatetimeIndex(['2017-12-31 16:00:00-08: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 In [9]: idx = pd.date_range("2018-01-01", periods=5, freq="H") In [10]: ts = pd.Series(range(len(idx)), index=idx) In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample("2H").mean() Out[12]: 2018-01-01 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 Điều này bắt đầu từ lần đầu tiên trong tháng và bao gồm ngày và giờ cuối cùng trong tháng: Điều này chỉ định thời gian dừng bao gồm tất cả các lần vào ngày cuối cùng: Điều này chỉ định thời gian dừng chính xác (và không giống như ở trên):Chúng tôi đang dừng lại ở điểm cuối được bao gồm vì nó là một phần của chỉ mục: try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)81 Lập chỉ mục chuỗi một phần cũng hoạt động trê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)01 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')21: In [9]: idx = pd.date_range("2018-01-01", periods=5, freq="H") In [10]: ts = pd.Series(range(len(idx)), index=idx) In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample("2H").mean() Out[12]: 2018-01-01 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 Mới trong phiên bản 0.25.0. In [9]: idx = pd.date_range("2018-01-01", periods=5, freq="H") In [10]: ts = pd.Series(range(len(idx)), index=idx) In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample("2H").mean() Out[12]: 2018-01-01 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 Cắt với lập chỉ mục chuỗi cũng tôn vinh UTC Offset.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')42 được cung cấp tương tự như cắt. Lưu ý 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')43 giả định giá trị 0 cho bất kỳ thành phần ngày không xác định nào trong một try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)81 trái ngược với việc cắt giảm mà trả về bất kỳ ngày phù hợp một phần nà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: float648 Ngay cả việc lập chỉ mục ưa thích phức tạp phá vỡ tính đều đặn tần số try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)81 sẽ dẫn đến try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)81, mặc dù tần số bị mấ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: float649 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ừ try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)80 hoặc một bộ sưu tập dấu thời gian như try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)81.
Chỉ định logic nếu ngày cuối cùng của năm (được xác định bởi tần số).dt accessors. Cho biết logic nếu ngày thuộc về một năm bước nhảy Hơn nữa, nếu bạn có In [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)00 với các giá trị datetimelike, thì bạn có thể truy cập các thuộc tính này thông qua Trình truy cập In [4]: dti = pd.date_range("2018-01-01", periods=3, freq="H") In [5]: dti Out[5]: 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, như được trình bày chi tiết trong phần trên .DT Accessions. In [13]: friday = pd.Timestamp("2018-01-05") In [14]: friday.day_name() Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta("1 day") In [16]: saturday.day_name() 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 Mới trong phiên bản 1.1.0.Bạn có thể có được các thành phần năm, tuần và ngày của năm ISO từ tiêu chuẩn ISO 8601:
Làm thế nào thời gian ngày trong try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)81 được đặt cách nhau khi 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)79 Tần số của try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)91 hoặc try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)92 In [13]: friday = pd.Timestamp("2018-01-05") In [14]: friday.day_name() Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta("1 day") In [16]: saturday.day_name() 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 Các chuỗi tần số này ánh xạ tới một đối tượng try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)96 và các lớp con của nó. A try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)96 tương tự như try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)86 đại diện cho một thời gian nhưng tuân theo các quy tắc thời lượng lịch cụ thể. Ví dụ, một ngày try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)86 sẽ luôn 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')60 sau 24 giờ, trong khi một ngày try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)96 sẽ tă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')60 đến cùng thời điểm vào ngày hôm sau cho dù một ngày đại diện cho 23, 24 hoặc 25 giờ do thời gian tiết kiệm ánh sáng ban ngày. Tuy nhiên, tất cả các lớp con try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)96 là một giờ hoặc nhỏ 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')64, In [4]: dti = pd.date_range("2018-01-01", periods=3, freq="H") In [5]: dti Out[5]: DatetimeIndex(['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H')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')66, In [4]: dti = pd.date_range("2018-01-01", periods=3, freq="H") In [5]: dti Out[5]: 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, In [4]: dti = pd.date_range("2018-01-01", periods=3, freq="H") In [5]: dti Out[5]: 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, In [4]: dti = pd.date_range("2018-01-01", periods=3, freq="H") In [5]: dti Out[5]: 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) hoạt động như try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)86 và tôn trọng thời gian tuyệt đối.
In [4]: dti = pd.date_range("2018-01-01", periods=3, freq="H") In [5]: dti Out[5]: DatetimeIndex(['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H')74 Ngoài ra còn có các phương thứ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')53 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')54 để di chuyển một ngày về phía trước hoặc lùi tương ứng sang một ngày bù hợp lệ so với phần bù. Ví dụ, các khoản bù đắp kinh doanh sẽ diễn ra ngày hạ cánh vào cuối tuần (thứ bảy và chủ nhật) chuyển sang thứ Hai kể từ khi các khoản bù đắp kinh doanh hoạt động vào các ngày trong tuần. In [13]: friday = pd.Timestamp("2018-01-05") In [14]: friday.day_name() Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta("1 day") In [16]: saturday.day_name() 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 Các hoạt động này lưu giữ thông tin thời gian (giờ, phút, v.v.) theo mặc định. Để đặt lại thời gian đến nửa đêm, hãy sử dụng In [6]: dti = dti.tz_localize("UTC") In [7]: dti Out[7]: DatetimeIndex(['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H') In [8]: dti.tz_convert("US/Pacific") Out[8]: DatetimeIndex(['2017-12-31 16:00:00-08: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 trước hoặc sau khi áp dụng thao tác (tùy thuộc vào việc bạn muốn thông tin thời gian có trong hoạt động). In [13]: friday = pd.Timestamp("2018-01-05") In [14]: friday.day_name() Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta("1 day") In [16]: saturday.day_name() 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 Tham số offset#Một số độ lệch có thể được tham số hóa trên mạng khi được tạo ra để dẫn đến các hành vi khác nhau. Ví dụ: độ lệch In [4]: dti = pd.date_range("2018-01-01", periods=3, freq="H") In [5]: dti Out[5]: 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ạo dữ liệu hàng tuần chấp nhận 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')57 dẫn đến các ngày được tạo luôn nằm vào một ngày cụ thể trong tuần: In [13]: friday = pd.Timestamp("2018-01-05") In [14]: friday.day_name() Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta("1 day") In [16]: saturday.day_name() 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 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')58 sẽ có hiệu lực để bổ sung và 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'5 Một ví dụ khác là tham số hó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')19 với tháng kết thúc cụ 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'6 Sử dụng độ lệch với In [1]: import datetime In [2]: dti = pd.to_datetime( ...: ["1/1/2018", np.datetime64("2018-01-01"), datetime.datetime(2018, 1, 1)] ...: ) ...: In [3]: dti Out[3]: DatetimeIndex(['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None) 00 / ________ 181#Offsets có thể được sử dụng với In [1]: import datetime In [2]: dti = pd.to_datetime( ...: ["1/1/2018", np.datetime64("2018-01-01"), datetime.datetime(2018, 1, 1)] ...: ) ...: In [3]: dti Out[3]: DatetimeIndex(['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None)00 hoặc try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)81 để áp dụng phần bù cho mỗi phần 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 Nếu lớp bù ánh xạ trực tiếp đến try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)86 ( In [6]: dti = dti.tz_localize("UTC") In [7]: dti Out[7]: DatetimeIndex(['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H') In [8]: dti.tz_convert("US/Pacific") Out[8]: DatetimeIndex(['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H')35, In [4]: dti = pd.date_range("2018-01-01", periods=3, freq="H") In [5]: dti Out[5]: 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, In [4]: dti = pd.date_range("2018-01-01", periods=3, freq="H") In [5]: dti Out[5]: 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, In [4]: dti = pd.date_range("2018-01-01", periods=3, freq="H") In [5]: dti Out[5]: 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, In [4]: dti = pd.date_range("2018-01-01", periods=3, freq="H") In [5]: dti Out[5]: 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, In [4]: dti = pd.date_range("2018-01-01", periods=3, freq="H") In [5]: dti Out[5]: 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, In [4]: dti = pd.date_range("2018-01-01", periods=3, freq="H") In [5]: dti Out[5]: 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), nó có thể được sử dụng chính xác như try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)86 - xem phần Thời gian để biết thêm.Timedelta section for more examples. In [13]: friday = pd.Timestamp("2018-01-05") In [14]: friday.day_name() Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta("1 day") In [16]: saturday.day_name() 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 Lưu ý rằng một số độ lệch (chẳng hạn 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 có việc thực hiện vector hóa. Chúng vẫn có thể được sử dụng nhưng có thể tính toán chậm hơn đáng kể và sẽ hiển thị In [6]: dti = dti.tz_localize("UTC") In [7]: dti Out[7]: DatetimeIndex(['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H') In [8]: dti.tz_convert("US/Pacific") Out[8]: DatetimeIndex(['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H')74 In [13]: friday = pd.Timestamp("2018-01-05") In [14]: friday.day_name() Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta("1 day") In [16]: saturday.day_name() 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 Ngày làm việc tùy chỉnh#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')80 hoặc In [4]: dti = pd.date_range("2018-01-01", periods=3, freq="H") In [5]: dti Out[5]: DatetimeIndex(['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H')81 cung cấp một lớp 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')78 có thể được sử dụng để tạo ra lịch Ngày làm việc tùy chỉnh chiếm các ngày lễ địa phương và các hội nghị cuối tuần địa phương. Như một ví dụ thú vị, hãy để Lôi nhìn vào Ai Cập nơi quan sát thấy một ngày cuối tuần thứ sáu thứ sáu. In [19]: pd.Series(range(3), index=pd.date_range("2000", freq="D", periods=3)) Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int640 Hãy để bản đồ đến tên ngày trong tuần: In [19]: pd.Series(range(3), index=pd.date_range("2000", freq="D", periods=3)) Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int641 Lịch ngày lễ có thể được sử dụng để cung cấp danh sách các ngày lễ. Xem phần Lịch ngày lễ để biết thêm thông tin.holiday calendar section for more information. In [19]: pd.Series(range(3), index=pd.date_range("2000", freq="D", periods=3)) Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int642 Các khoản bù vào hàng tháng tôn trọng một lịch kỳ nghỉ nhất định có thể được định nghĩa theo cách thông thường. In [19]: pd.Series(range(3), index=pd.date_range("2000", freq="D", periods=3)) Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int643 Ghi chú Chuỗi tần số ’C, được sử dụng để chỉ ra rằng ngày Day OfferOffset CustomBusinessDay được sử dụng, điều quan trọng cần lưu ý là vì CustomBusinessDay là loại tham số hóa, các trường hợp của CustomBusinessDay có thể khác nhau và điều này không thể phát hiện được với chuỗi tần số. Do đó, người dùng cần đảm bảo rằng chuỗi tần số ‘C được sử dụng một cách nhất quán trong ứng dụng của người dùng. Giờ làm việc#Lớp In [6]: dti = dti.tz_localize("UTC") In [7]: dti Out[7]: DatetimeIndex(['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H') In [8]: dti.tz_convert("US/Pacific") Out[8]: DatetimeIndex(['2017-12-31 16:00:00-08: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 cung cấp một đại diện giờ làm việc 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')78, cho phép sử dụng thời gian bắt đầu và kết thúc cụ thể. Theo 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')31 sử dụng 9:00 - 17:00 làm giờ làm việc. Thê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')31 sẽ tăng try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)80 theo tần suất hàng giờ. Nếu Target try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)80 hết giờ làm việc, hãy chuyển sang giờ làm việc tiếp theo sau đó tăng lên. Nếu kết quả vượt quá giờ làm việc, giờ còn lại sẽ được thêm vào ngày làm việc tiếp theo. In [19]: pd.Series(range(3), index=pd.date_range("2000", freq="D", periods=3)) Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int644 Bạn cũng có thể chỉ định 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)88 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)89 theo từ khóa. Đối số phải là 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')86 với biểu diễn In [6]: dti = dti.tz_localize("UTC") In [7]: dti Out[7]: DatetimeIndex(['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H') In [8]: dti.tz_convert("US/Pacific") Out[8]: DatetimeIndex(['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H')87 hoặc một thể hiệ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')88. Chỉ định giây, micro giây và nano giây là giờ làm việc dẫn đế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')89. In [19]: pd.Series(range(3), index=pd.date_range("2000", freq="D", periods=3)) Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int645 Vượt qua 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)88 thời gian muộn 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)89 đại diện cho giờ làm việc vào nửa đêm. Trong trường hợp này, giờ làm việc vượt quá nửa đêm và trùng với ngày hôm sau. Giờ làm việc hợp lệ được phân biệt bằng cách bắt đầu từ In [4]: dti = pd.date_range("2018-01-01", periods=3, freq="H") In [5]: dti Out[5]: DatetimeIndex(['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H')78 hợp lệ. In [19]: pd.Series(range(3), index=pd.date_range("2000", freq="D", periods=3)) Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int646 Áp 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')93 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')94 cho các giờ làm việc kết quả trong giờ làm việc tiếp theo bắt đầu hoặc ngày hôm trước. Khác với các độ lệch khác, In [6]: dti = dti.tz_localize("UTC") In [7]: dti Out[7]: DatetimeIndex(['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H') In [8]: dti.tz_convert("US/Pacific") Out[8]: DatetimeIndex(['2017-12-31 16:00:00-08: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ể đưa ra các kết quả khác 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')96 theo định nghĩa. Điều này là do kết thúc giờ làm việc của một ngày bằng cách bắt đầu giờ làm việc vào ngày hôm sau. Ví dụ, 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 [6]: dti = dti.tz_localize("UTC") In [7]: dti Out[7]: DatetimeIndex(['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H') In [8]: dti.tz_convert("US/Pacific") Out[8]: DatetimeIndex(['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H')97 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')98. In [19]: pd.Series(range(3), index=pd.date_range("2000", freq="D", periods=3)) Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int647 In [6]: dti = dti.tz_localize("UTC") In [7]: dti Out[7]: DatetimeIndex(['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H') In [8]: dti.tz_convert("US/Pacific") Out[8]: DatetimeIndex(['2017-12-31 16:00:00-08: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 liên quan đến thứ bảy và chủ nhật là ngày lễ. Để sử dụng các ngày lễ tùy ý, bạn có thể sử dụng bù In [6]: dti = dti.tz_localize("UTC") In [7]: dti Out[7]: DatetimeIndex(['2018-01-01 00:00:00+00:00', '2018-01-01 01:00:00+00:00', '2018-01-01 02:00:00+00:00'], dtype='datetime64[ns, UTC]', freq='H') In [8]: dti.tz_convert("US/Pacific") Out[8]: DatetimeIndex(['2017-12-31 16:00:00-08:00', '2017-12-31 17:00:00-08:00', '2017-12-31 18:00:00-08:00'], dtype='datetime64[ns, US/Pacific]', freq='H')33, như được giải thích trong tiểu mục sau. Giờ làm việc 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')33 là hỗn hợp 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')31 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 cho phép bạn chỉ định các ngày lễ tù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')33 hoạ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')31 ngoại trừ việc nó bỏ qua các ngày lễ tùy chỉnh được chỉ định. In [19]: pd.Series(range(3), index=pd.date_range("2000", freq="D", periods=3)) Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int648 Bạn có thể sử dụng các đối số từ khóa được hỗ trợ bở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')31 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. In [19]: pd.Series(range(3), index=pd.date_range("2000", freq="D", periods=3)) Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int649 Bí danh bù#Một số bí danh chuỗi được cung cấp cho các tần số chuỗi thời gian chung hữu ích. Chúng tôi sẽ gọi các bí danh này là bí danh bù.
Ghi chú
Ví dụ, đối với 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: float6414, nế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: float6410 không phải là lần đầu tiên trong tháng, dấu thời gian được trả lại sẽ bắt đầu với ngày đầu tiên của tháng tiếp theo. Nếu In [9]: idx = pd.date_range("2018-01-01", periods=5, freq="H") In [10]: ts = pd.Series(range(len(idx)), index=idx) In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample("2H").mean() Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6411 không phải là ngày đầu tiên của một tháng, thời gian cuối cùng được trả lại sẽ là ngày đầu tiên của tháng tương ứng. In [20]: pd.Series(pd.date_range("2000", freq="D", periods=3)) Out[20]: 0 2000-01-01 1 2000-01-02 2 2000-01-03 dtype: datetime64[ns]0 Chúng ta có thể thấy trong ví dụ trê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 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)80 sẽ chỉ trả về các dấu thời gian hợp lệ giữ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: float6410 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: float6411. Nếu đây không phải là dấu thời gian hợp lệ cho tần số đã cho, nó sẽ chuyển sang giá trị tiếp theo cho In [9]: idx = pd.date_range("2018-01-01", periods=5, freq="H") In [10]: ts = pd.Series(range(len(idx)), index=idx) In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample("2H").mean() Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6410 (tương ứng trước đó cho In [9]: idx = pd.date_range("2018-01-01", periods=5, freq="H") In [10]: ts = pd.Series(range(len(idx)), index=idx) In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample("2H").mean() Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6411) Kết hợp bí danh#Như chúng ta đã thấy trước đây, bí danh và phiên bản bù có thể bị nấm trong hầu hết các chức năng: In [20]: pd.Series(pd.date_range("2000", freq="D", periods=3)) Out[20]: 0 2000-01-01 1 2000-01-02 2 2000-01-03 dtype: datetime64[ns]1 Bạn có thể kết hợp với nhau trong ngày và trong ngày bù đắp: In [20]: pd.Series(pd.date_range("2000", freq="D", periods=3)) Out[20]: 0 2000-01-01 1 2000-01-02 2 2000-01-03 dtype: datetime64[ns]2 Offsets neo#Đối với một số tần số, bạn có thể chỉ định hậu tố neo:
Tần suất bắt đầu quý doanh nghiệp Tinh ngữ bù đắp được neo#Đối với những độ lệch được neo vào đầu hoặc kết thúc tần số cụ thể ( In [4]: dti = pd.date_range("2018-01-01", periods=3, freq="H") In [5]: dti Out[5]: 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')91, In [9]: idx = pd.date_range("2018-01-01", periods=5, freq="H") In [10]: ts = pd.Series(range(len(idx)), index=idx) In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample("2H").mean() Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6428, v.v.), các quy tắc sau áp dụng cho việc lăn về phía trước và lùi. Khi In [9]: idx = pd.date_range("2018-01-01", periods=5, freq="H") In [10]: ts = pd.Series(range(len(idx)), index=idx) In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample("2H").mean() Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6429 không phải là 0, nếu ngày nhất định không ở điểm neo, nó đã bị gãy đến điểm neo (trước) tiếp theo và di chuyển In [9]: idx = pd.date_range("2018-01-01", periods=5, freq="H") In [10]: ts = pd.Series(range(len(idx)), index=idx) In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample("2H").mean() Out[12]: 2018-01-01 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ác bước bổ sung về phía trước hoặc ngược. In [20]: pd.Series(pd.date_range("2000", freq="D", periods=3)) Out[20]: 0 2000-01-01 1 2000-01-02 2 2000-01-03 dtype: datetime64[ns]3 Nếu ngày đã cho ở điểm neo, nó sẽ được di 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: float6431 điểm về phía trước hoặc ngược. In [20]: pd.Series(pd.date_range("2000", freq="D", periods=3)) Out[20]: 0 2000-01-01 1 2000-01-02 2 2000-01-03 dtype: datetime64[ns]4 Đối với trường hợp khi In [9]: idx = pd.date_range("2018-01-01", periods=5, freq="H") In [10]: ts = pd.Series(range(len(idx)), index=idx) In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample("2H").mean() Out[12]: 2018-01-01 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, 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 về phía điểm neo tiếp theo. In [20]: pd.Series(pd.date_range("2000", freq="D", periods=3)) Out[20]: 0 2000-01-01 1 2000-01-02 2 2000-01-03 dtype: datetime64[ns]5 Ngày lễ / Lịch ngày lễ##Ngày lễ và lịch cung cấp một cách đơn giản để xác định các quy tắc ngày lễ được sử dụng với In [4]: dti = pd.date_range("2018-01-01", periods=3, freq="H") In [5]: dti Out[5]: 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 trong các phân tích khác đòi hỏi một tập hợp các ngày lễ được xác định trước. Lớp In [9]: idx = pd.date_range("2018-01-01", periods=5, freq="H") In [10]: ts = pd.Series(range(len(idx)), index=idx) In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample("2H").mean() Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6434 cung cấp tất cả các phương pháp cần thiết để trả về danh sách các ngày lễ và chỉ In [9]: idx = pd.date_range("2018-01-01", periods=5, freq="H") In [10]: ts = pd.Series(range(len(idx)), index=idx) In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample("2H").mean() Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6435 cần được xác định trong một lớp lịch nghỉ lễ cụ thể. Hơn nữa, các thuộc tính lớp In [9]: idx = pd.date_range("2018-01-01", periods=5, freq="H") In [10]: ts = pd.Series(range(len(idx)), index=idx) In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample("2H").mean() Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6410 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: float6411 xác định trong ngày nghỉ ngày nào được tạo ra. Chúng nên được ghi đè lên lớp In [9]: idx = pd.date_range("2018-01-01", periods=5, freq="H") In [10]: ts = pd.Series(range(len(idx)), index=idx) In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample("2H").mean() Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6434 để có phạm vi áp dụng cho tất cả các lớp con lịch. In [9]: idx = pd.date_range("2018-01-01", periods=5, freq="H") In [10]: ts = pd.Series(range(len(idx)), index=idx) In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample("2H").mean() Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6439 là lịch duy nhất tồn tại và chủ yếu đóng vai trò là một ví dụ để phát triển các lịch khác. Đối với các ngày lễ xảy ra vào ngày cố định (ví dụ: Ngày tưởng niệm Hoa Kỳ hoặc ngày 4 tháng 7), một quy tắc quan sát xác định khi nào kỳ nghỉ đó được quan sát nếu nó rơi vào một ngày cuối tuần hoặc một ngày không quan sát khác. Quy tắc quan sát được xác định là:
Một ví dụ về cách các ngày lễ và lịch ngày lễ được xác định: In [20]: pd.Series(pd.date_range("2000", freq="D", periods=3)) Out[20]: 0 2000-01-01 1 2000-01-02 2 2000-01-03 dtype: datetime64[ns]6dấu Ngày trong tuần = mo (2) giống như 2 * tuần (ngày trong tuần = 2) is same as 2 * Week(weekday=2) Sử dụng lịch này, tạo một chỉ mục hoặc thực hiện số học bỏ qua các ngày cuối tuần và ngày lễ (tức là, Ngày Tưởng niệm/ngày 4 tháng 7). Ví dụ: bên dưới xác định một ngày làm việc tùy chỉnh bù bằng cách 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: float6440. Giống như bất kỳ phần bù nào khác, nó có thể được sử dụng để tạo try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)81 hoặc thêm vào các đố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)06 hoặc try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)80. In [20]: pd.Series(pd.date_range("2000", freq="D", periods=3)) Out[20]: 0 2000-01-01 1 2000-01-02 2 2000-01-03 dtype: datetime64[ns]7 Phạm vi được xác định bởi các thuộc tí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: float6410 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: float6411 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: float6434. Các mặc định được hiển thị bên dưới. In [20]: pd.Series(pd.date_range("2000", freq="D", periods=3)) Out[20]: 0 2000-01-01 1 2000-01-02 2 2000-01-03 dtype: datetime64[ns]8 Các ngày này có thể được ghi đè bằng cách đặt các thuộc tính là DateTime/Timestamp/String. In [20]: pd.Series(pd.date_range("2000", freq="D", periods=3)) Out[20]: 0 2000-01-01 1 2000-01-02 2 2000-01-03 dtype: datetime64[ns]9 Mỗi lớp lịch có thể truy cập bằng tên bằng cách sử dụng hàm In [9]: idx = pd.date_range("2018-01-01", periods=5, freq="H") In [10]: ts = pd.Series(range(len(idx)), index=idx) In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample("2H").mean() Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6447 trả về một thể hiện lớp học. Bất kỳ lớp lịch được nhập sẽ tự động có sẵn bởi chức năng này. Ngoài ra, In [9]: idx = pd.date_range("2018-01-01", periods=5, freq="H") In [10]: ts = pd.Series(range(len(idx)), index=idx) In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample("2H").mean() Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6448 cung cấp một giao diện dễ dàng để tạo lịch là sự kết hợp của lịch hoặc lịch với các quy tắc bổ sung. In [21]: pd.Series(pd.period_range("1/1/2011", freq="M", periods=3)) Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series([pd.DateOffset(1), pd.DateOffset(2)]) Out[22]: 00 Resampling#Pandas có chức năng đơn giản, mạnh mẽ và hiệu quả để thực hiện các hoạt động lấy mẫu lại trong quá trình chuyển đổi tần số (ví dụ: chuyển đổi dữ liệu thứ hai thành dữ liệu 5 phút). Điều này là cực kỳ phổ biến trong, nhưng không giới hạn ở các ứng dụng tài chính. In [9]: idx = pd.date_range("2018-01-01", periods=5, freq="H") In [10]: ts = pd.Series(range(len(idx)), index=idx) In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample("2H").mean() Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6449 là một nhóm dựa trên thời gian, tiếp theo là phương pháp giảm trên mỗi nhóm của nó. Xem một số ví dụ sách nấu ăn cho một số chiến lược nâng cao.cookbook examples for some advanced strategies. Phương pháp In [9]: idx = pd.date_range("2018-01-01", periods=5, freq="H") In [10]: ts = pd.Series(range(len(idx)), index=idx) In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample("2H").mean() Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6449 có thể được sử dụng trực tiếp từ các đối 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: float6451, xem các tài liệu nhóm.groupby docs. Basics#In [21]: pd.Series(pd.period_range("1/1/2011", freq="M", periods=3)) Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series([pd.DateOffset(1), pd.DateOffset(2)]) Out[22]: 01 Hà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: float6452 rất linh hoạt và cho phép bạn chỉ định nhiều tham số khác nhau để kiểm soát hoạt động chuyển đổi và lấy mẫu tần số. Bất kỳ chức năng nào có sẵn thông qua việc gửi đi đều có sẵn dưới dạng phương thức của đối tượng được trả về, bao gồm In [9]: idx = pd.date_range("2018-01-01", periods=5, freq="H") In [10]: ts = pd.Series(range(len(idx)), index=idx) In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample("2H").mean() Out[12]: 2018-01-01 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, In [9]: idx = pd.date_range("2018-01-01", periods=5, freq="H") In [10]: ts = pd.Series(range(len(idx)), index=idx) In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample("2H").mean() Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6454, In [9]: idx = pd.date_range("2018-01-01", periods=5, freq="H") In [10]: ts = pd.Series(range(len(idx)), index=idx) In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample("2H").mean() Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6455, In [9]: idx = pd.date_range("2018-01-01", periods=5, freq="H") In [10]: ts = pd.Series(range(len(idx)), index=idx) In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample("2H").mean() Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6456, In [9]: idx = pd.date_range("2018-01-01", periods=5, freq="H") In [10]: ts = pd.Series(range(len(idx)), index=idx) In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample("2H").mean() Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6457, In [9]: idx = pd.date_range("2018-01-01", periods=5, freq="H") In [10]: ts = pd.Series(range(len(idx)), index=idx) In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample("2H").mean() Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6458, In [9]: idx = pd.date_range("2018-01-01", periods=5, freq="H") In [10]: ts = pd.Series(range(len(idx)), index=idx) In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample("2H").mean() Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6459, In [9]: idx = pd.date_range("2018-01-01", periods=5, freq="H") In [10]: ts = pd.Series(range(len(idx)), index=idx) In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample("2H").mean() Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6460, In [9]: idx = pd.date_range("2018-01-01", periods=5, freq="H") In [10]: ts = pd.Series(range(len(idx)), index=idx) In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample("2H").mean() Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6461dispatching is available as a method of the returned object, including In [9]: idx = pd.date_range("2018-01-01", periods=5, freq="H") In [10]: ts = pd.Series(range(len(idx)), index=idx) In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample("2H").mean() Out[12]: 2018-01-01 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, In [9]: idx = pd.date_range("2018-01-01", periods=5, freq="H") In [10]: ts = pd.Series(range(len(idx)), index=idx) In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample("2H").mean() Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6454, In [9]: idx = pd.date_range("2018-01-01", periods=5, freq="H") In [10]: ts = pd.Series(range(len(idx)), index=idx) In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample("2H").mean() Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6455, In [9]: idx = pd.date_range("2018-01-01", periods=5, freq="H") In [10]: ts = pd.Series(range(len(idx)), index=idx) In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample("2H").mean() Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6456, In [9]: idx = pd.date_range("2018-01-01", periods=5, freq="H") In [10]: ts = pd.Series(range(len(idx)), index=idx) In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample("2H").mean() Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6457, In [9]: idx = pd.date_range("2018-01-01", periods=5, freq="H") In [10]: ts = pd.Series(range(len(idx)), index=idx) In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample("2H").mean() Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6458, In [9]: idx = pd.date_range("2018-01-01", periods=5, freq="H") In [10]: ts = pd.Series(range(len(idx)), index=idx) In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample("2H").mean() Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6459, In [9]: idx = pd.date_range("2018-01-01", periods=5, freq="H") In [10]: ts = pd.Series(range(len(idx)), index=idx) In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample("2H").mean() Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6460, In [9]: idx = pd.date_range("2018-01-01", periods=5, freq="H") In [10]: ts = pd.Series(range(len(idx)), index=idx) In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample("2H").mean() Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6461, In [9]: idx = pd.date_range("2018-01-01", periods=5, freq="H") In [10]: ts = pd.Series(range(len(idx)), index=idx) In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample("2H").mean() Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6462: In [21]: pd.Series(pd.period_range("1/1/2011", freq="M", periods=3)) Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series([pd.DateOffset(1), pd.DateOffset(2)]) Out[22]: 02 Đối với Downsampling, In [9]: idx = pd.date_range("2018-01-01", periods=5, freq="H") In [10]: ts = pd.Series(range(len(idx)), index=idx) In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample("2H").mean() Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6463 có thể được đặt thành ‘trái, hoặc‘ phải để chỉ định kết thúc của khoảng thời gian nào được đóng: In [21]: pd.Series(pd.period_range("1/1/2011", freq="M", periods=3)) Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series([pd.DateOffset(1), pd.DateOffset(2)]) Out[22]: 03 Các tham số 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: float6464 được sử dụng để thao tác các nhãn kết quả. In [9]: idx = pd.date_range("2018-01-01", periods=5, freq="H") In [10]: ts = pd.Series(range(len(idx)), index=idx) In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample("2H").mean() Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6464 Chỉ định xem kết quả được dán nhãn với đầu hay kết thúc của khoảng thời gian. In [21]: pd.Series(pd.period_range("1/1/2011", freq="M", periods=3)) Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series([pd.DateOffset(1), pd.DateOffset(2)]) Out[22]: 04 Cảnh báo Các giá trị mặc định cho In [9]: idx = pd.date_range("2018-01-01", periods=5, freq="H") In [10]: ts = pd.Series(range(len(idx)), index=idx) In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample("2H").mean() Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6464 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: float6463 là 'còn lại' cho tất cả các độ lệch tần số ngoại trừ 'm', 'a', 'q', 'bm', 'ba', 'bq' và 'w' mà tất cả đều có mặc định quyền'.left’ for all frequency offsets except for ‘M’, ‘A’, ‘Q’, ‘BM’, ‘BA’, ‘BQ’, and ‘W’ which all have a default of ‘right’. Điều này có thể dẫn đến việc nhìn về phía trước, trong đó giá trị cho một thời gian sau được kéo trở lại thời gian trước đó như trong ví dụ sau với tần số In [4]: dti = pd.date_range("2018-01-01", periods=3, freq="H") In [5]: dti Out[5]: DatetimeIndex(['2018-01-01 00:00:00', '2018-01-01 01:00:00', '2018-01-01 02:00:00'], dtype='datetime64[ns]', freq='H')78: In [21]: pd.Series(pd.period_range("1/1/2011", freq="M", periods=3)) Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series([pd.DateOffset(1), pd.DateOffset(2)]) Out[22]: 05 Lưu ý cách giá trị cho Chủ nhật đã được kéo trở lại vào thứ Sáu trước đó. Để có được hành vi mà giá trị cho Chủ nhật được đẩy sang thứ Hai, hãy sử dụng thay thế In [21]: pd.Series(pd.period_range("1/1/2011", freq="M", periods=3)) Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series([pd.DateOffset(1), pd.DateOffset(2)]) Out[22]: 06 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: float6469 có thể được đặt thành 0 hoặc 1 và cho phép bạn lấy mẫu lại trục được chỉ định cho In [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)01. In [9]: idx = pd.date_range("2018-01-01", periods=5, freq="H") In [10]: ts = pd.Series(range(len(idx)), index=idx) In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample("2H").mean() Out[12]: 2018-01-01 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 có thể được đặt thành ‘dấu thời gian hoặc‘ giai đoạn để chuyển đổi chỉ số kết quả thành/từ dấu thời gian và biểu diễn khoảng thời gian. Theo mặc định In [9]: idx = pd.date_range("2018-01-01", periods=5, freq="H") In [10]: ts = pd.Series(range(len(idx)), index=idx) In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample("2H").mean() Out[12]: 2018-01-01 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 giữ lại biểu diễn đầu và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: float6473 có thể được đặt thành ’bắt đầu hoặc’ kết thúc khi lấy mẫu lại dữ liệu thời gian (chi tiết bên dưới). Nó chỉ định mức độ thời gian tần số thấp được chuyển đổi thành khoảng thời gian tần số cao hơn. Upsampling#Đối với UPSampling, bạn có thể chỉ định một cách để lấy mẫu và tham số In [9]: idx = pd.date_range("2018-01-01", periods=5, freq="H") In [10]: ts = pd.Series(range(len(idx)), index=idx) In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample("2H").mean() Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6474 để nội suy qua các khoảng trống được tạo: In [21]: pd.Series(pd.period_range("1/1/2011", freq="M", periods=3)) Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series([pd.DateOffset(1), pd.DateOffset(2)]) Out[22]: 07 Sắp xếp lại thưa thớt#Thời gian thưa thớt là những thứ mà bạn có ít điểm hơn so với lượng thời gian bạn đang tìm cách lấy mẫu lại. Nguyên nhân UPSAPPLING một loạt thưa thớt có thể tạo ra nhiều giá trị trung gian. Khi bạn không muốn sử dụng một phương thức để điền vào các giá trị này, ví dụ: In [9]: idx = pd.date_range("2018-01-01", periods=5, freq="H") In [10]: ts = pd.Series(range(len(idx)), index=idx) In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample("2H").mean() Out[12]: 2018-01-01 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 là try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)97, sau đó các giá trị trung gian sẽ được lấp đầy bằ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: float6477. 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: float6452 là một nhóm dựa trên thời gian, sau đây là phương pháp để lấy mẫu hiệu quả chỉ các nhóm không phải là tất cả In [9]: idx = pd.date_range("2018-01-01", periods=5, freq="H") In [10]: ts = pd.Series(range(len(idx)), index=idx) In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample("2H").mean() Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6477. In [21]: pd.Series(pd.period_range("1/1/2011", freq="M", periods=3)) Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series([pd.DateOffset(1), pd.DateOffset(2)]) Out[22]: 08 Nếu chúng ta muốn lấy mẫu lại thành toàn bộ loạt phim: In [21]: pd.Series(pd.period_range("1/1/2011", freq="M", periods=3)) Out[21]: 0 2011-01 1 2011-02 2 2011-03 dtype: period[M] In [22]: pd.Series([pd.DateOffset(1), pd.DateOffset(2)]) Out[22]: 09 Thay vào đó, chúng tôi chỉ có thể lấy mẫu lại các nhóm nơi chúng tôi có điểm như sau: try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)00 Aggregation#Tương tự như API tổng hợp, API GroupBy và API cửa 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 lấy lại có chọn lọc.aggregating API, groupby API, and the window API, 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: float6480 can be selectively resampled. Đặt lại 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)01, mặc định sẽ là hành động trên tất cả các cột có cùng chức năng. try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)01 Chúng tôi có thể chọn một cột hoặc cột cụ thể bằng cách sử dụng GetItem Standard. try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)02 Bạn có thể vượt qua danh sách hoặc bắt buộc các chức năng để thực hiện tổng hợp với, xuất ra In [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)01: try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)03 Trê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)01 được lấy lại, bạn có thể chuyển danh sách các chức năng để áp dụng cho mỗi cột, tạo ra kết quả tổng hợp với chỉ số phân cấp: try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)04 Bằng cách chuyển một dict cho In [9]: idx = pd.date_range("2018-01-01", periods=5, freq="H") In [10]: ts = pd.Series(range(len(idx)), index=idx) In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample("2H").mean() Out[12]: 2018-01-01 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, bạn có thể áp dụng một tập hợp khác cho các cột 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)01: try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)05 Tên chức năng cũng có thể là chuỗi. Để một chuỗi có hiệu lực, nó phải được thực hiện trên đối tượng được ghép lại: try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)06 Hơn nữa, bạn cũng có thể chỉ định nhiều hàm tập hợp cho từng cột một cách riêng biệt. try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)07 Nếu 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)01 không có chỉ mục datetimelike, mà thay vào đó bạn muốn lấy mẫu lại dựa trên cột datetimelike trong khung, nó có thể được chuyển đến từ khóa In [9]: idx = pd.date_range("2018-01-01", periods=5, freq="H") In [10]: ts = pd.Series(range(len(idx)), index=idx) In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample("2H").mean() Out[12]: 2018-01-01 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. try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)08 Tương tự, nếu thay vào đó bạn muốn lấy mẫu lại theo mức dữ liệu 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')21, tên hoặc vị trí của nó có thể được chuyển đến từ khó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: float6489. try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)09 Lặp lại thông qua các nhóm#Với đối 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: float6480 trong tay, việc lặp lại thông qua dữ liệu được nhóm lại rất tự nhiên và các chức năng tương tự như In [9]: idx = pd.date_range("2018-01-01", periods=5, freq="H") In [10]: ts = pd.Series(range(len(idx)), index=idx) In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample("2H").mean() Out[12]: 2018-01-01 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: try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)10 Xem lặp qua các nhóm hoặc In [9]: idx = pd.date_range("2018-01-01", periods=5, freq="H") In [10]: ts = pd.Series(range(len(idx)), index=idx) In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample("2H").mean() Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float6492 để biết thêm.Iterating through groups or In [9]: idx = pd.date_range("2018-01-01", periods=5, freq="H") In [10]: ts = pd.Series(range(len(idx)), index=idx) In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample("2H").mean() Out[12]: 2018-01-01 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 for more. 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) 63 hoặc In [9]: idx = pd.date_range("2018-01-01", periods=5, freq="H") In [10]: ts = pd.Series(range(len(idx)), index=idx) In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample("2H").mean() Out[12]: 2018-01-01 00:00:00 0.5 2018-01-01 02:00:00 2.5 2018-01-01 04:00:00 4.0 Freq: 2H, dtype: float64 94 để điều chỉnh phần bắt đầu của các thùng#Mới trong phiên bản 1.1.0. Các thùng của nhóm được điều chỉnh dựa trên đầu ngày của điểm bắt đầu chuỗi thời gian. Điều này hoạt động tốt với các tần số là bội số của một ngày (như In [9]: idx = pd.date_range("2018-01-01", periods=5, freq="H") In [10]: ts = pd.Series(range(len(idx)), index=idx) In [11]: ts Out[11]: 2018-01-01 00:00:00 0 2018-01-01 01:00:00 1 2018-01-01 02:00:00 2 2018-01-01 03:00:00 3 2018-01-01 04:00:00 4 Freq: H, dtype: int64 In [12]: ts.resample("2H").mean() Out[12]: 2018-01-01 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 chia đều một ngày (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: float6496 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: float6497). Đ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 [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)63. Ví dụ: try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)11 Ở đây chúng ta có thể thấy rằng, khi 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)63 với giá trị mặc định của 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'00), kết quả sau In [13]: friday = pd.Timestamp("2018-01-05") In [14]: friday.day_name() Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta("1 day") In [16]: saturday.day_name() 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 không giống nhau tùy thuộc vào chuỗi thời gian bắt đầu: try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)12 Ở đây chúng ta có thể thấy rằng, khi cài đặ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)63 thà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'03, kết quả sau In [13]: friday = pd.Timestamp("2018-01-05") In [14]: friday.day_name() Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta("1 day") In [16]: saturday.day_name() 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 giống hệt nhau tùy thuộc vào chuỗi thời gian bắt đầu: try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)13 Nếu cần, bạn có thể sử dụng dấu thời gian tùy chỉ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)63: try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)14 Nếu cần, bạn chỉ có thể điều chỉnh các thù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: float6494 timedelta sẽ được thêm vào 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)63. Hai ví dụ đó tương đương với chuỗi thời gian này: try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)15 Lưu ý việc 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'08 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)63 trên ví dụ cuối cùng. Trong trường hợ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)63 sẽ được đặt thành giá trị đầu tiên của thời gian. Lấy lại mẫu lại#Mới trong phiên bản 1.3.0. Thay vì điều chỉnh phần đầu của thùng, đôi khi chúng ta cần sửa chữa phần cuối của các thùng để tạo mẫu lại ngược với In [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)91 đã cho. Các mẫu lại đã đặt lạ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: float6463 thà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'13 theo mặc định vì giá trị cuối cùng nên được coi là điểm cạnh cho thùng cuối cùng. Chúng ta 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)63 thà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. Giá trị cho một chỉ số try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)80 cụ thể là viết tắt của kết quả lấy mẫu từ try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)80 hiện 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)91 đối với try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)80 hiện tại với mức đóng bên phải. try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)16 Ngoài ra, trái ngược với 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'00, In [13]: friday = pd.Timestamp("2018-01-05") In [14]: friday.day_name() Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta("1 day") In [16]: saturday.day_name() 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 được hỗ trợ. Điều này sẽ đặt nguồn gốc là trần nửa đêm của try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)80 lớn nhất. try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)17 Kết quả trên 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'23 làm cạnh phải của thùng cuối cùng kể từ khi tính toán sau. try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)18 Đại diện khoảng thời gian#Các khoảng thời gian thường xuyên được biểu thị bằng các đối tượng try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)91 trong gấu trúc trong khi các chuỗi của các đối tượng try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)91 được thu thập trong một try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)92, có thể được tạo bằng hàm tiện lợi try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)95. Period#Một try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)91 đại diện cho một khoảng thời gian (ví dụ: một ngày, một tháng, một phần tư, v.v.). Bạn có thể chỉ định nhịp qua từ khóa In [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)91 bằng bí danh tần số như bên dưới. Bởi 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)91 đại diện cho một khoảng try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)91, nó không thể âm như từ -3D. try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)19 Thêm và trừ các số nguyên từ các giai đoạn chuyển thời gian theo tần số của chính nó. Số học không được phép giữa try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)91 với In [1]: import datetime In [2]: dti = pd.to_datetime( ...: ["1/1/2018", np.datetime64("2018-01-01"), datetime.datetime(2018, 1, 1)] ...: ) ...: In [3]: dti Out[3]: DatetimeIndex(['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None)91 khác nhau (nhịp). try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)20 Nếu try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)91 FREQ hàng ngày hoặc cao hơ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'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, In [13]: friday = pd.Timestamp("2018-01-05") In [14]: friday.day_name() Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta("1 day") In [16]: saturday.day_name() 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 [13]: friday = pd.Timestamp("2018-01-05") In [14]: friday.day_name() Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta("1 day") In [16]: saturday.day_name() Out[16]: 'Saturday' # Add 1 business day (Friday --> Monday) In [17]: monday = friday + pd.offsets.BDay() In [18]: monday.day_name() Out[18]: 'Monday'38, In [13]: friday = pd.Timestamp("2018-01-05") In [14]: friday.day_name() Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta("1 day") In [16]: saturday.day_name() Out[16]: 'Saturday' # Add 1 business day (Friday --> Monday) In [17]: monday = friday + pd.offsets.BDay() In [18]: monday.day_name() Out[18]: 'Monday'39, In [13]: friday = pd.Timestamp("2018-01-05") In [14]: friday.day_name() Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta("1 day") In [16]: saturday.day_name() 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, In [13]: friday = pd.Timestamp("2018-01-05") In [14]: friday.day_name() Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta("1 day") In [16]: saturday.day_name() Out[16]: 'Saturday' # Add 1 business day (Friday --> Monday) In [17]: monday = friday + pd.offsets.BDay() In [18]: monday.day_name() Out[18]: 'Monday'41), In [13]: friday = pd.Timestamp("2018-01-05") In [14]: friday.day_name() Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta("1 day") In [16]: saturday.day_name() 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 và ________ 207 có thể được thêm vào nếu kết quả có thể tự do. Nếu khô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')89 sẽ được nâng lên. try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)21
try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)22 Nếu try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)91 có các tần số khác, chỉ có thể thêm cùng 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'42. Nếu khô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')89 sẽ được nâng lên. try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)23 try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)24 Lấy sự khác biệt của các trường hợp try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)91 với cùng tần số sẽ trả về số lượng đơn vị tần số giữa chúng: try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)25 Thời kỳ InderIndex và Stent_Range#Các chuỗi thông thường của các đối tượng try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)91 có thể được thu thập trong một try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)92, có thể được xây dựng bằng cách sử dụng hàm tiện lợi try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)95: try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)26 Trình xây dựng try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)92 cũng có thể được sử dụng trực tiếp: try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)27 Vượt qua đầu ra tần số nhân một chuỗi try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)91 có nhịp nhân. try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)28 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)88 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)89 là các đối tượng try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)91, chúng sẽ được sử dụng làm điểm cuối neo cho try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)92 với tần số khớp với hàm tạo try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)92. try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)29 Giống như try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)81, try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)92 cũng có thể được sử dụng để lập chỉ mục các đối tượng gấu trúc: try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)30 try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)92 hỗ trợ bổ sung và trừ với cùng quy tắc với try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)91. try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)31 try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)92 có DTYPE của riêng mình có tê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'64, tham khảo DTYPE của giai đoạn.Period Dtypes. Thời kỳ dtypes#try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)92 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'64 DTYPE. Đây là một DTYPE mở rộng gandas tương tự như thời gian nhận biết DTYPE ( try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)83).timezone aware dtype ( try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)83). DTYPE In [13]: friday = pd.Timestamp("2018-01-05") In [14]: friday.day_name() Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta("1 day") In [16]: saturday.day_name() Out[16]: 'Saturday' # Add 1 business day (Friday --> Monday) In [17]: monday = friday + pd.offsets.BDay() In [18]: monday.day_name() Out[18]: 'Monday'64 giữ thuộc 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)91 và được biểu thị bằng try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)93 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'71 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'72, sử dụng chuỗi tần số.frequency strings. try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)32 DTYPE In [13]: friday = pd.Timestamp("2018-01-05") In [14]: friday.day_name() Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta("1 day") In [16]: saturday.day_name() Out[16]: 'Saturday' # Add 1 business day (Friday --> Monday) In [17]: monday = friday + pd.offsets.BDay() In [18]: monday.day_name() Out[18]: 'Monday'64 có thể được sử dụng 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'74. Nó cho phép người ta thay đổ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)91 của try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)92 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'77 và chuyển đổi try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)81 thành try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)92 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'80: try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)33 Chỉ mục một phần chuỗi định kỳ#Thời kỳ InterIndex hiện hỗ trợ cắt chuỗi một phần với các chỉ mục không đơn điệu. Mới trong phiên bản 1.1.0. Bạn có thể chuyển từng ngày và chuỗi đế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)00 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)01 với try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)92, theo cách tương tự như try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)81. Để biết chi tiết, hãy tham khảo Lập chỉ mục chuỗi một phần của DatetimeIndex.DatetimeIndex Partial String Indexing. try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)34 Vượt qua một chuỗi đại diện cho tần số thấp hơn try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)92 trả về dữ liệu cắt một phần. try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)35 Như với try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)81, các điểm cuối sẽ được đưa vào kết quả. Ví dụ dưới đây, dữ liệu lát bắt đầu từ 10:00 đến 11:59. try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)36 Chuyển đổi tần số và lấy mẫu lại với chu kỳ#Tần số của try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)91 và try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)92 có thể được chuyển đổi thông qua 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'89. Hãy bắt đầu với năm tài chính 2011, kết thúc vào tháng 12: try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)37 Chúng ta có thể chuyển đổi nó thành tần suất hàng tháng. Sử dụng tham số In [13]: friday = pd.Timestamp("2018-01-05") In [14]: friday.day_name() Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta("1 day") In [16]: saturday.day_name() 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úng tôi có thể chỉ định nên trả về tháng bắt đầu hay kết thúc: try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)38 Người viết tắt của S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S và try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)39 Chuyển đổi thành một siêu kỳ của người Viking (ví dụ: tần số hàng năm là siêu tần số hàng quý) tự động trả về siêu giai đoạn bao gồm thời gian đầu vào: try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)40 Lưu ý rằng vì chúng tôi đã chuyển đổi thành tần số hàng năm kết thúc năm vào tháng 11, thời gian hàng tháng của tháng 12 năm 2011 thực sự là trong giai đoạn A-NOV 2012. Chuyển đổi thời gian với tần số neo đặc biệt hữu ích để làm việc với các dữ liệu hàng quý khác nhau cho kinh tế, kinh doanh và các lĩnh vực khác. Nhiều tổ chức xác định các quý so với tháng mà năm tài chính của họ bắt đầu và kết thúc. Do đó, quý đầu tiên của năm 2011 có thể bắt đầu vào năm 2010 hoặc một vài tháng vào năm 2011. Thông qua các tần số neo, gấu trúc hoạt động cho tất cả các tần số hàng quý In [13]: friday = pd.Timestamp("2018-01-05") In [14]: friday.day_name() Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta("1 day") In [16]: saturday.day_name() 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 đế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'92. In [13]: friday = pd.Timestamp("2018-01-05") In [14]: friday.day_name() Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta("1 day") In [16]: saturday.day_name() Out[16]: 'Saturday' # Add 1 business day (Friday --> Monday) In [17]: monday = friday + pd.offsets.BDay() In [18]: monday.day_name() Out[18]: 'Monday'92 Xác định các quý lịch thường xuyên: try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)41 In [13]: friday = pd.Timestamp("2018-01-05") In [14]: friday.day_name() Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta("1 day") In [16]: saturday.day_name() Out[16]: 'Saturday' # Add 1 business day (Friday --> Monday) In [17]: monday = friday + pd.offsets.BDay() In [18]: monday.day_name() Out[18]: 'Monday'94 Xác định kết thúc năm tài chính vào tháng 3: try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)42 Chuyển đổi giữa các đại diện#Dữ liệu có thời gian có thể được chuyển đổi thành dữ liệu định kỳ-ed bằng cách sử dụng In [13]: friday = pd.Timestamp("2018-01-05") In [14]: friday.day_name() Out[14]: 'Friday' # Add 1 day In [15]: saturday = friday + pd.Timedelta("1 day") In [16]: saturday.day_name() 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à ngược lại bằng cách 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'96: try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)43 Hãy nhớ rằng có thể được sử dụng rằng ‘S và và E E, có thể được sử dụng để trả lại dấu thời gian khi bắt đầu hoặc kết thúc giai đoạn: try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)44 Chuyển đổi giữa giai đoạn và dấu thời gian cho phép sử dụng một số chức năng số học thuận tiện. Trong ví dụ sau, chúng tôi chuyển đổi tần số hàng quý với năm kết thúc vào tháng 11 đến 9 giờ tối cuối tháng sau khi kết thúc quý: try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)45 Đại diện cho các khoảng cách ngoài giới hạn#Nếu bạn có dữ liệu nằm ngoài giới hạn try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)80, hãy xem các hạn chế về dấu thời gian, thì bạn có thể sử dụng try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)92 và/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)00 của In [19]: pd.Series(range(3), index=pd.date_range("2000", freq="D", periods=3)) Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6400 để thực hiện tính toán.Timestamp limitations, then you can use a try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)92 and/or In [1]: import datetime In [2]: dti = pd.to_datetime( ...: ["1/1/2018", np.datetime64("2018-01-01"), datetime.datetime(2018, 1, 1)] ...: ) ...: In [3]: dti Out[3]: DatetimeIndex(['2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None)00 of In [19]: pd.Series(range(3), index=pd.date_range("2000", freq="D", periods=3)) Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6400 to do computations. try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)46 Để chuyển đổi từ biểu diễn yyyymmdd dựa trên ____701. try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)47 Chúng có thể dễ dàng được chuyển đổi thành try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)92: try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)48 Xử lý múi giờ#Pandas cung cấp hỗ trợ phong phú cho việc làm việc với dấu thời gian trong các múi giờ khác nhau bằng các thư viện In [19]: pd.Series(range(3), index=pd.date_range("2000", freq="D", periods=3)) Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6403 và try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)79 hoặc các đối tượng In [19]: pd.Series(range(3), index=pd.date_range("2000", freq="D", periods=3)) Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6405 từ thư viện tiêu chuẩn. Làm việc với múi giờ#Theo mặc định, các đối tượng gấu trúc là múi giờ không biết: try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)49 Để bản địa hóa các ngày này vào múi giờ (gán một múi giờ cụ thể cho một ngày ngây thơ), bạn có thể sử dụng phương thức In [19]: pd.Series(range(3), index=pd.date_range("2000", freq="D", periods=3)) Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6406 hoặc đối số 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)69 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)79, try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)80 hoặc try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)81. Bạn có thể vượt qua In [19]: pd.Series(range(3), index=pd.date_range("2000", freq="D", periods=3)) Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6403 hoặc try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)79 Các đối tượng múi giờ hoặc chuỗi cơ sở dữ liệu múi giờ Olson. Các chuỗi múi giờ Olson sẽ trả về các đối tượng múi giờ In [19]: pd.Series(range(3), index=pd.date_range("2000", freq="D", periods=3)) Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6403 theo mặc định. Để trả về try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)79 Các đối tượng múi giờ, hãy nối lại In [19]: pd.Series(range(3), index=pd.date_range("2000", freq="D", periods=3)) Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6415 trước chuỗi.
try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)50 Mới trong phiên bản 0.25.0. try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)51 Lưu ý rằng múi giờ In [19]: pd.Series(range(3), index=pd.date_range("2000", freq="D", periods=3)) Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6420 là một trường hợp đặc biệt trong try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)79 và nên được xây dựng rõ ràng như là một ví dụ của In [19]: pd.Series(range(3), index=pd.date_range("2000", freq="D", periods=3)) Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6422. Bạn cũng có thể xây dựng các đối tượng thời gian khác một cách rõ ràng trước tiên. try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)52 Để chuyển đổi đối tượng gấu trúc nhận biết múi giờ từ múi giờ này sang múi giờ khác, bạn có thể sử dụng phương thức In [19]: pd.Series(range(3), index=pd.date_range("2000", freq="D", periods=3)) Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6423. try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)53 Ghi chú Khi sử dụng các múi giờ In [19]: pd.Series(range(3), index=pd.date_range("2000", freq="D", periods=3)) Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6403, try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)81 sẽ xây dựng một đối tượng múi giờ khác với try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)80 cho cùng một đầu vào múi giờ. Một try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)81 có thể chứa một bộ sưu tập các đối tượng try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)80 có thể có các phạm vi UTC khác nhau và không thể được biểu diễn ngắn gọn bằng một phiên bản múi giờ In [19]: pd.Series(range(3), index=pd.date_range("2000", freq="D", periods=3)) Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6403 trong khi một try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)80 thể hiện một thời điểm với độ lệch UTC cụ thể. try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)54 Cảnh báo Hãy cảnh giác với các chuyển đổi giữa các thư viện. Trong một số múi giờ, In [19]: pd.Series(range(3), index=pd.date_range("2000", freq="D", periods=3)) Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6403 và try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)79 có các định nghĩa khác nhau về khu vực. Đây là một vấn đề đối với các múi giờ bất thường hơn là các khu vực tiêu chuẩn, như In [19]: pd.Series(range(3), index=pd.date_range("2000", freq="D", periods=3)) Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6433. Cảnh báo Hãy cảnh giác với các chuyển đổi giữa các thư viện. Trong một số múi giờ, In [19]: pd.Series(range(3), index=pd.date_range("2000", freq="D", periods=3)) Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6403 và try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)79 có các định nghĩa khác nhau về khu vực. Đây là một vấn đề đối với các múi giờ bất thường hơn là các khu vực tiêu chuẩn, như In [19]: pd.Series(range(3), index=pd.date_range("2000", freq="D", periods=3)) Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6433.here for how to handle such a situation. Cảnh báo Hãy cảnh giác với các chuyển đổi giữa các thư viện. Trong một số múi giờ, In [19]: pd.Series(range(3), index=pd.date_range("2000", freq="D", periods=3)) Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6403 và try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)79 có các định nghĩa khác nhau về khu vực. Đây là một vấn đề đối với các múi giờ bất thường hơn là các khu vực tiêu chuẩn, như In [19]: pd.Series(range(3), index=pd.date_range("2000", freq="D", periods=3)) Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6433. Cảnh báo Hãy cảnh giác với các chuyển đổi giữa các thư viện. Trong một số múi giờ, In [19]: pd.Series(range(3), index=pd.date_range("2000", freq="D", periods=3)) Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6403 và try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)79 có các định nghĩa khác nhau về khu vực. Đây là một vấn đề đối với các múi giờ bất thường hơn là các khu vực tiêu chuẩn, như In [19]: pd.Series(range(3), index=pd.date_range("2000", freq="D", periods=3)) Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6433. Cảnh báo Hãy cảnh giác với các chuyển đổi giữa các thư viện. Trong một số múi giờ, In [19]: pd.Series(range(3), index=pd.date_range("2000", freq="D", periods=3)) Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6403 và try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)79 có các định nghĩa khác nhau về khu vực. Đây là một vấn đề đối với các múi giờ bất thường hơn là các khu vực tiêu chuẩn, như In [19]: pd.Series(range(3), index=pd.date_range("2000", freq="D", periods=3)) Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6433. Xin lưu ý rằng một định nghĩa múi giờ trên các phiên bản của các thư viện múi giờ có thể không được coi là bằng nhau. Điều này có thể gây ra vấn đề khi làm việc với dữ liệu được lưu trữ được bản địa hóa bằng một phiên bản và hoạt động với một phiên bản khác. Xem ở đây để biết cách xử lý một tình huống như vậy. try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)55 Đối với các múi giờ In [19]: pd.Series(range(3), index=pd.date_range("2000", freq="D", periods=3)) Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6403, việc truyền trực tiếp một đối tượng múi giờ là không chính xác vào hàm tạo try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)76 (ví dụ: In [19]: pd.Series(range(3), index=pd.date_range("2000", freq="D", periods=3)) Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6436. Thay vào đó, DateTime cần được định vị bằng phương thức In [19]: pd.Series(range(3), index=pd.date_range("2000", freq="D", periods=3)) Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6437 trên đối tượng múi giờ In [19]: pd.Series(range(3), index=pd.date_range("2000", freq="D", periods=3)) Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6403. try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)56 Xin lưu ý rằng đối với thời gian trong tương lai, việc chuyển đổi chính xác giữa các múi giờ (và UTC) không thể được đảm bảo bởi bất kỳ thư viện múi giờ nào vì một thời gian bù múi giờ có thể được thay đổi bởi chính phủ tương ứng. try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)57 Để xóa thông tin múi giờ, hãy sử dụng In [19]: pd.Series(range(3), index=pd.date_range("2000", freq="D", periods=3)) Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6443 hoặc In [19]: pd.Series(range(3), index=pd.date_range("2000", freq="D", periods=3)) Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6444. In [19]: pd.Series(range(3), index=pd.date_range("2000", freq="D", periods=3)) Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6443 sẽ loại bỏ múi giờ mang lại biểu diễn thời gian địa phương. In [19]: pd.Series(range(3), index=pd.date_range("2000", freq="D", periods=3)) Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6444 sẽ loại bỏ múi giờ sau khi chuyển đổi thành thời gian UTC. try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)58 Fold#Mới trong phiên bản 1.1.0. Đối với thời gian mơ hồ, gấu trúc hỗ trợ chỉ định rõ ràng đối số gấp từ khóa. Do thời gian tiết kiệm ánh sáng ban ngày, thời gian đồng hồ tường có thể xảy ra hai lần khi chuyển từ mùa hè sang mùa đông; Fold mô tả liệu giống như DateTime tương ứng với lần đầu tiên (0) hay lần thứ hai (1) đồng hồ treo tường chạm vào thời gian mơ hồ. Fold chỉ được hỗ trợ để xây dựng từ ngây thơ try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)76 (xem tài liệu DateTime để biết chi tiết) hoặc từ try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)80 hoặc để xây dựng từ các thành phần (xem bên dưới). Chỉ hỗ trợ thời gian try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)79 (xem tài liệu DateUtil cho các phương thức try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)79 liên quan đến các dữ liệu mơ hồ) vì thời gian ____703 không hỗ trợ gấp (xem tài liệu PYTZ để biết chi tiết về cách In [19]: pd.Series(range(3), index=pd.date_range("2000", freq="D", periods=3)) Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6403 liên quan đến các dữ liệu mơ hồ). Để bản địa hóa một dữ liệu mơ hồ với In [19]: pd.Series(range(3), index=pd.date_range("2000", freq="D", periods=3)) Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6403, vui lòng sử dụng In [19]: pd.Series(range(3), index=pd.date_range("2000", freq="D", periods=3)) Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6454. Nói chung, chúng tôi khuyên bạn nên dựa vào In [19]: pd.Series(range(3), index=pd.date_range("2000", freq="D", periods=3)) Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6454 khi bản địa hóa các dữ liệu mơ hồ nếu bạn cần kiểm soát trực tiếp cách xử lý chúng. try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)59 Thời gian mơ hồ khi nội địa hóa#In [19]: pd.Series(range(3), index=pd.date_range("2000", freq="D", periods=3)) Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6406 có thể không thể xác định được phần bù UTC của dấu thời gian vì thời gian tiết kiệm ánh sáng ban ngày (DST) trong múi giờ địa phương gây ra một số lần xảy ra hai lần trong vòng một ngày (đồng hồ rơi trở lại). Lựa chọn tiếp theo đã khả thi:
try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)60 Điều này sẽ thất bại vì có những thời điểm mơ hồ ( In [19]: pd.Series(range(3), index=pd.date_range("2000", freq="D", periods=3)) Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6466) try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)61 Xử lý những thời gian mơ hồ này bằng cách chỉ định như sau. try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)62 Thời gian không tồn tại khi bản địa hóa#Một quá trình chuyển đổi DST cũng có thể thay đổi thời gian địa phương trước 1 giờ tạo ra thời gian địa phương không tồn tại (đồng hồ mùa xuân chuyển tiếp). Hành vi của việc bản địa hóa một thời gian có thời gian không tồn tại có thể được kiểm soát bằng đối số In [19]: pd.Series(range(3), index=pd.date_range("2000", freq="D", periods=3)) Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6467. Lựa chọn tiếp theo đã khả thi:
try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)63 Nội địa hóa thời gian không tồn tại sẽ gây ra lỗi theo mặc định. try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)64 Biến đổi thời gian không tồn tại 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)11 hoặc chuyển thời gian. try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)65 Hoạt động chuỗi múi 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)00 với các giá trị ngây thơ múi giờ được biểu thị bằng DTYPE là try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)82.naive values is represented with a dtype of try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)82. try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)66 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)00 với các giá trị nhận biết múi giờ được biểu thị bằng DTYPE là try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)83 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)69 là múi giờaware values is represented with a dtype of try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)83 where 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)69 is the time zone try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)67 Cả hai thông tin múi giờ 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)00 này đều có thể được thao tác thông qua bộ truy 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')50, xem phần excessor DT.the dt accessor section. Ví dụ, để bản địa hóa và chuyển đổi một con tem ngây thơ sang múi giờ nhận thức. try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)68 Thông tin múi giờ cũng có thể được thao tác bằng phương pháp In [19]: pd.Series(range(3), index=pd.date_range("2000", freq="D", periods=3)) Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6482. Phương pháp này có thể chuyển đổi giữa các dtypes nhận biết múi giờ khác nhau. try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)69 Ghi chú Sử dụng In [19]: pd.Series(range(3), index=pd.date_range("2000", freq="D", periods=3)) Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6483 trê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)00, trả về một mảng dữ liệu. Numpy hiện không hỗ trợ các múi giờ (mặc dù nó đang in trong múi giờ địa phương!), Do đó try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)70 Bằng cách chuyển đổi thành một mảng đối tượng của dấu thời gian, nó bảo tồn thông tin múi giờ. Ví dụ: khi chuyển đổi trở lại một loạt: try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)71 Tuy nhiên, nếu bạn muốn một mảng try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)82 thực tế (với các giá trị được chuyển đổi thành UTC) thay vì một mảng các đối tượng, bạn có thể chỉ định đối số In [19]: pd.Series(range(3), index=pd.date_range("2000", freq="D", periods=3)) Out[19]: 2000-01-01 0 2000-01-02 1 2000-01-03 2 Freq: D, dtype: int6486: try: df.to_csv( path_to_csv + f'\{file_name}_{now.strftime("%Y-%m-%d")}_to_{now.strftime("%H.%M")}.csv', date_format='%Y-%m-%d %H:%M:%S', encoding='utf-8', index=False) except OSError as e: print("Failed to create the file.......") raise SystemExit(e)72 |