Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Python Pandas - Chuyển DateTimeIndex thành mảng đối tượng datetime.datetime

Để chuyển DateTimeIndex thành mảng đối tượng (object ndarray) chứa các đối tượng datetime.datetime gốc của Python, sử dụng phương thức DateTimeIndex.to_pydatetime().

Các bước thực hiện

1. Import thư viện

import pandas as pd

2. Tạo DateTimeIndex

datetimeindex = pd.date_range(
    '2021-10-18 07:20:32.261811624',
    periods=5,
    freq='2Y'
)

3. Hiển thị DateTimeIndex

print("DateTimeIndex...\n", datetimeindex)

4. Chuyển sang mảng datetime.datetime

print("\nDateTimeIndex as object ndarray...\n",
      datetimeindex.to_pydatetime())

Ví dụ hoàn chỉnh

import pandas as pd

datetimeindex = pd.date_range(
    '2021-10-18 07:20:32.261811624',
    periods=5,
    freq='2Y'
)

print("DateTimeIndex...\n", datetimeindex)
print("DateTimeIndex frequency...\n", datetimeindex.freq)
print("\nDateTimeIndex as object ndarray of datetime.datetime objects...\n",
      datetimeindex.to_pydatetime())

Kết quả đầu ra

DateTimeIndex...
DatetimeIndex(['2021-12-31 07:20:32.261811624', '2023-12-31 07:20:32.261811624',
               '2025-12-31 07:20:32.261811624', '2027-12-31 07:20:32.261811624',
               '2029-12-31 07:20:32.261811624'],
              dtype='datetime64[ns]', freq='2A-DEC')

DateTimeIndex as object ndarray of datetime.datetime objects...
[datetime.datetime(2021, 12, 31, 7, 20, 32, 261811)
 datetime.datetime(2023, 12, 31, 7, 20, 32, 261811)
 datetime.datetime(2025, 12, 31, 7, 20, 32, 261811)
 datetime.datetime(2027, 12, 31, 7, 20, 32, 261811)
 datetime.datetime(2029, 12, 31, 7, 20, 32, 261811)]

Khi nào cần to_pydatetime()?

  • Tương tác với thư viện chuẩn datetime (json, pickle, csv writer...)
  • Cần đối tượng datetime.datetime thuần túy thay vì Timestamp của Pandas
  • Gửi dữ liệu qua API/network yêu cầu format chuẩn Python

Lưu ý: Kết quả là numpy.ndarray với dtype=object, mỗi phần tử là datetime.datetime. Khác với to_numpy() trả về datetime64[ns].