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

Python Pandas - Làm tròn DateTimeIndex theo tần suất phút

Để làm tròn DateTimeIndex theo tần suất phút (minute), sử dụng phương thức DateTimeIndex.round() với tham số freq='T'.

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

1. Import thư viện

import pandas as pd

2. Tạo DateTimeIndex

Tần suất 45 giây, múi giờ Australia/Adelaide:

datetimeindex = pd.date_range('2021-09-29 07:00', periods=5, tz='Australia/Adelaide', freq='45s')

3. Làm tròn theo phút

print("\nLàm tròn theo phút:\n", datetimeindex.round(freq='T'))

Ví dụ hoàn chỉnh

import pandas as pd

datetimeindex = pd.date_range('2021-09-29 07:00', periods=5, tz='Australia/Adelaide', freq='45s')

print("DateTimeIndex:\n", datetimeindex)
print("\nTần suất:", datetimeindex.freq)
print("\nPhút:", datetimeindex.minute)

# Làm tròn theo phút (freq='T')
print("\nLàm tròn theo phút:\n", datetimeindex.round(freq='T'))

Kết quả đầu ra

DateTimeIndex:
DatetimeIndex(['2021-09-29 07:00:00+09:30', '2021-09-29 07:00:45+09:30', '2021-09-29 07:01:30+09:30', '2021-09-29 07:02:15+09:30', '2021-09-29 07:03:00+09:30'], dtype='datetime64[ns, Australia/Adelaide]', freq='45S')
Tần suất: <45 * Seconds>
Phút: Int64Index([0, 0, 1, 2, 3], dtype='int64')
Làm tròn theo phút:
DatetimeIndex(['2021-09-29 07:00:00+09:30', '2021-09-29 07:01:00+09:30', '2021-09-29 07:02:00+09:30', '2021-09-29 07:02:00+09:30', '2021-09-29 07:03:00+09:30'], dtype='datetime64[ns, Australia/Adelaide]', freq=None)

Giải thích làm tròn

GốcPhútGiâyLàm trònQuy tắc
07:00:000007:00:00Đã tròn
07:00:4504507:01:00≥30s → lên 1 phút
07:01:3013007:02:00≥30s → lên 1 phút
07:02:1521507:02:00<30s → xuống
07:03:003007:03:00Đã tròn

Các tần suất thường dùng

'S'  # giây
'T'  # phút (minute)
'H'  # giờ (hour)
'D'  # ngày (day)
'W'  # tuần (week)
'M'  # tháng (month end)
'Y'  # năm (year end)