當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python Pandas Period構造函數用法及代碼示例


Pandas Period(~) 構造函數創建一個新的 Period 對象,該對象表示特定的時間跨度或持續時間。

例子

基本用法

要創建 Period 對象,隻需調用其構造函數,如下所示:

p = pd.Period("2020")
p



Period('2020', 'A-DEC')

這裏,"A-DEC"意味著時間跨度設置為年度的,跨度於 12 月結束。在 Pandas 術語中,我們經常說頻率是每年的。

輔助屬性

Period 對象具有許多有用的屬性:

print("Starting time:", p.start_time)
print("Ending time:", p.end_time)
print("Number of months:", p.month)
print("Number of weeks:", p.week)



Starting time: 2020-01-01 00:00:00
Ending time: 2020-12-31 23:59:59.999999999
Number of months: 12
Number of weeks: 53

這裏, start_timeend_time 的類型為 timestamp

日期算術

我們還可以像這樣執行日期算術:

p = pd.Period("2020")
p2 = p + 1
p2



Period('2021', 'A-DEC')

此處,1 添加到年份中,因為如上所述,頻率設置為 A(每年)。

注意p2的開始時間和結束時間為:

print("Starting time:", p2.start_time)
print("Ending time:", p2.end_time)



Starting time: 2021-01-01 00:00:00
Ending time: 2021-01-31 23:59:59.999999999

注意開始是如何不2020,也就是說效果+1是一個轉移而不是時間跨度的擴大。

設置頻率參數

默認情況下,freq 參數是根據您指定的日期字符串推斷的 - 將使用日期字符串中的最小時間單位。

例如:

p = pd.Period("2020-12")
p



Period('2020-12', 'M')

在這裏,我們將 M(月)設置為頻率,因為日期字符串中的最低時間是一個月(即 12 )。

我們可以明確指示使用的頻率,而不是從日期字符串推斷。我們通過傳入 freq 參數來做到這一點:

p = pd.Period("2020", freq="M")
p



Period('2020-01', 'M')

此處,頻率為 M(月),但如果我們沒有指定 freq ,則頻率將為 A(每年)。

現在,開始時間和結束時間捕獲一個月:

print("Starting time:", p.start_time)
print("Ending time:", p.end_time)



Starting time: 2020-01-01 00:00:00
Ending time: 2020-01-31 23:59:59.999999999

為DataFrame設置周期索引

您可以使用 PeriodIndex 對象將句點設置為 DataFrame 的索引,該對象的構造函數采用與 Period 的構造函數完全相同的參數:

index_period = pd.PeriodIndex(["2020-12-25", "2020-12-26"], freq="D")
index_period



PeriodIndex(['2020-12-25', '2020-12-26'], dtype='period[D]', freq='D')

在這裏,我們傳入日期字符串列表來構造 PeriodIndex 。然後我們可以使用 PeriodIndex 作為DataFrame的索引:

pd.DataFrame({"A":["a","b"]}, index=index_period)



            A
2020-12-25  a
2020-12-26  b

相關用法


注:本文由純淨天空篩選整理自Isshin Inada大神的英文原創作品 Pandas | Period constructor。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。