admin管理员组文章数量:1584366
1. 引言
Pandas中的period时期表示的是一个时间区间,比如数月、数年等。可以使用pandas.Period类进行定义。具体如下:
import pandas as pd
p1=pd.Period(year=2022,freq='Y')
Period类型变量可以使用start_time、end_time属性查看该时间区间的具体起始终止时间,具体如下:
print("开始时间:",p1.start_time)
print('结束时间:',p1.end_time)
其结果如下:
2. Period变量的创建
这部分将详细介绍如何使用pandas.Period类创建Period变量。Period类的__init__变量中的参数如下:
这里只重点介绍freq,freq的全部取值可以参考网页:https://pandas.pydata/pandas-docs/stable/user_guide/timeseries.html#timeseries-offset-aliases。但不是所有的值都能用在Period类中,下面仅将适合Period类中的freq取值列出:
选项 | 说明 |
---|---|
B | 工作日 |
C | 用户自定义工作日 |
D | 日历日 |
W | 周,另外W还可以和SUN、MON、TUE、WED、THU、FRI、SAT组合,比如W-TUE表示以周二为一个星期的最后一天 |
M | 月 |
Q | 季度末。另外Q也可以和DEC、JAN、FEB、MAR、APR、MAY、JUN、JUL、AUG、SEP、OCT、NOV组合,比如Q-FEB表示一年的第4季度为二月 |
A,Y | 年末。另外A(Y不可以)也可以和DEC、JAN、FEB、MAR、APR、MAY、JUN、JUL、AUG、SEP、OCT、NOV组合 |
H | 小时 |
T,min | 分钟 |
S | 秒 |
L,ms | 毫秒 |
U,us | 微秒 |
N | 纳秒 |
其用法举例如下:
import pandas as pd
p1=pd.Period(year=2022,freq='B')
#2022-01-03为周一
print("p1->开始时间:{},结束时间:{}".format(p1.start_time,p1.end_time))
p2=pd.Period(year=2022,day=9,freq='D')
print("p2->开始时间:{},结束时间:{}".format(p2.start_time,p2.end_time))
p3=pd.Period(year=2022,hour=9,freq='D')
#这里可以发现当freq='D',那么在定义Period时比freq对应的时间元素低的元素不发挥作用,比如这里的hour
print("p3->开始时间:{},结束时间:{}".format(p3.start_time,p3.end_time))
#freq前可以与数字一起使用
p4=pd.Period(year=2022,quarter=3,freq='2M')
#2022年第3季度中的2个月长的时间段
print("p4->开始时间:{},结束时间:{}".format(p4.start_time,p4.end_time))
p5=pd.Period(year=2022,quarter=1,freq='Q-FEB')
#将二月设定为季度的最后一个月,所以2022年的第1个季度为2022年3月到5月
print("p5->开始时间:{},结束时间:{}".format(p5.start_time,p5.end_time))
p6=pd.Period(year=2022,month=7,freq='W-TUE')
#将星期二作为一周的最后一天,那么2022年7月的第1周从2022-6-29日开始
print("p6->开始时间:{},结束时间:{}".format(p6.start_time,p6.end_time))
其结果如下:
3. Period变量的常用操作
3.1 加减操作
Period变量可以执行加减操作,将Period变量前移或后移相应单位。具体如下:
p6=pd.Period(year=2022,month=7,freq='W-TUE')
print("p6->开始时间:{},结束时间:{}".format(p6.start_time,p6.end_time))
p7=p6+2
print('p7->开始时间:{},结束时间:{}'.format(p7.start_time,p7.end_time))
p8=p6-1
print('p8->开始时间:{},结束时间:{}'.format(p8.start_time,p8.end_time))
其结果如下:
3.2 asfreq频率转化函数
Period变量可以使用asfreq方法转化为另一时间段。具体如下:
p6=pd.Period(year=2022,month=7,freq='W-TUE')
p6_1=p6.asfreq(freq='M',how='start')
p6_2=p6.asfreq(freq='M',how='end')
print("p6_1-->开始时间:{},结束时间:{}".format(p6_1.start_time,p6_1.end_time))
print("p6_2-->开始时间:{},结束时间:{}".format(p6_2.start_time,p6_2.end_time)
其结果如下:
参考文献
- https://blog.csdn/bqw18744018044/article/details/80947243
版权声明:本文标题:Pandas:Period时间段类型及其常用操作 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1727945005a1139145.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论