当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。