看过来
《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gr99123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
周期对象 Period 可以进行相加想减,以完成周期移动的目的,它还可以和时间偏移、时间进行操作。
从周期中添加和减去整数会按其自身的频率移动周期。 具有不同频率(跨度)的Period 之间不允许进行算术运算。
# 一年一个周期
p = pd.Period('2012', freq='A-DEC')
p + 1 # 加一个周期,加一年
# Period('2013', 'A-DEC')
p - 3 # 减少一个周期,减去三年
# Period('2009', 'A-DEC')
# 两月一个周期
p = pd.Period('2012-01', freq='2M')
p + 2 # 加两个周期,到五月据的周期
# Period('2012-05', '2M')
p - 1 # 减去一个周期
# Period('2011-11', '2M')
# 周期频率不同不能计算,会报 IncompatibleFrequency 错误
p == pd.Period('2012-01', freq='3M')
如果“周期”频率是每天或更高(D,H,T,S,L,U,N),则如果结果可以具有相同的频率,则可以添加偏移量和类似timedelta的值。 否则,将引发 ValueError。
# 定义一个小时频率的周期
p = pd.Period('2014-07-01 09:00', freq='H')
p + pd.offsets.Hour(2) # 加两个小时
# Period('2014-07-01 11:00', 'H')
p + datetime.timedelta(minutes=120) # 加120分钟
# Period('2014-07-01 11:00', 'H')
p + np.timedelta64(7200, 's') # 7200 秒
# Period('2014-07-01 11:00', 'H')
p + pd.offsets.Minute(5) # 偏移5分钟
# ValueError: Input has different freq from Period(freq=H)
如果“周期”具有其他频率,则只能添加相同的偏移量。 否则,将引发ValueError。
p = pd.Period('2014-07', freq='M')
p + pd.offsets.MonthEnd(3)
# Period('2014-10', 'M')
p + pd.offsets.MonthBegin(3)
# ValueError: Input has different freq from Period(freq=M)
相同频率的 Period 实例之差将返回它们之间的频率单位数:
pd.Period('2012', freq='A-DEC') - pd.Period('2002', freq='A-DEC')
# <10 * YearEnds: month=12>
更新时间:2020-06-24 17:34:26 标签:pandas 时间 周期