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_time
和 end_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
相关用法
- Python Pandas PeriodIndex构造函数用法及代码示例
- Python Sympy Permutation.list()用法及代码示例
- Python Sympy Permutation.rank_nonlex()用法及代码示例
- Python Sympy Permutation.next_lex()用法及代码示例
- Python Sympy Permutation.is_odd()用法及代码示例
- Python Sympy Permutation.support()用法及代码示例
- Python Sympy Permutation.runs()用法及代码示例
- Python Sympy Permutation.signature()用法及代码示例
- Python Sympy Permutation.max()用法及代码示例
- Python Sympy Permutation.mul_inv()用法及代码示例
- Python Sympy Permutation.unrank_nonlex()用法及代码示例
- Python Sympy Permutation.is_Empty()用法及代码示例
- Python Sympy Permutation.is_Identity()用法及代码示例
- Python Sympy Permutation.random()用法及代码示例
- Python Sympy Permutation.rmul_with_af()用法及代码示例
- Python Sympy Permutation.unrank_lex()用法及代码示例
- Python Sympy Permutation.transpositions()用法及代码示例
- Python Sympy Permutation.rmul()用法及代码示例
- Python Sympy Permutation.next_trotterjohnson()用法及代码示例
- Python Sympy Permutation.is_even()用法及代码示例
- Python Tableau PersonalAccessTokenAuth用法及代码示例
- Python Sympy Permutation.order()用法及代码示例
- Python Django PercentRank用法及代码示例
- Python Sympy Permutation.length()用法及代码示例
- Python Sympy Permutation.unrank_trotterjohnson()用法及代码示例
注:本文由纯净天空筛选整理自Isshin Inada大神的英文原创作品 Pandas | Period constructor。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。