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

Python Pandas - Thay đổi tần suất Period từ giây sang ngày

Để thay đổi tần suất của Period object từ giây sang ngày, sử dụng phương thức period.asfreq() với tham số 'D'.

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

1. Import thư viện

import pandas as pd

2. Tạo Period với tần suất giây

period = pd.Period(freq="S", year=2021, month=4, day=16, hour=2, minute=35, second=15)

3. Chuyển sang tần suất ngày

res = period.asfreq('D')

Ví dụ hoàn chỉnh

import pandas as pd

period = pd.Period(freq="S", year=2021, month=4, day=16, hour=2, minute=35, second=15)

print("Period (tần suất giây)...\n", period)
res = period.asfreq('D')
print("\nKết quả sau chuyển đổi tần suất (ngày)...\n", res)

Kết quả đầu ra

Period (tần suất giây)...
2021-04-16 02:35:15
Kết quả sau chuyển đổi tần suất (ngày)...
2021-04-16

Giải thích:

  • Period gốc: giây cụ thể trong ngày 16/4/2021
  • asfreq('D') chuyển sang tần suất ngày → chỉ giữ lại ngày
  • Kết quả: Period đại diện cho toàn bộ ngày 16/4/2021

Quy tắc asfreq():

  • Chuyển sang tần suất **thô hơn** (lower freq): cắt bớt chi tiết (truncate) - luôn thành công
  • Chuyển sang tần suất **mịn hơn** (higher freq): cần thông tin bổ sung - có thể lỗi hoặc trả về khoảng
# Từ ngày sang giờ - cần chỉ định 'start' hoặc 'end'
period_d = pd.Period('2021-04-16', freq='D')
period_d.asfreq('H', how='start')  # 2021-04-16 00:00
period_d.asfreq('H', how='end')    # 2021-04-16 23:00