Để 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