Pandas计算各日期财年季度与最大财年季度的间隔季度数实现问题
实现间隔季度数提取方案
两个同频率Period对象直接相减返回的是QuarterEnd偏移量对象,而非数值类型,你可以通过以下两种方式得到目标数值结果:
方法1:转为整数类型计算(推荐,性能更优)
Period和PeriodIndex转为整数时会返回对应周期的序列计数值,同频率下的计数值差值就是间隔周期数:
import pandas as pd date = pd.Series(['2019-01-01', '2019-03-01', '2019-07-01', '2020-03-01']) date = pd.to_datetime(date) year_quarter = pd.PeriodIndex(date, freq='Q-JAN') max_year_quarter = year_quarter.max() # 计算间隔季度数 gap_quarter = (max_year_quarter.astype(int) - year_quarter.astype(int)).tolist() print(gap_quarter) # 输出:[5, 4, 3, 0]
方法2:提取偏移量的数值属性
偏移量对象的n属性存储了对应的周期数值,通过映射提取即可:
gap_quarter = (max_year_quarter - year_quarter).map(lambda x: x.n).tolist() print(gap_quarter) # 输出:[5, 4, 3, 0]
内容的提问来源于stack exchange,提问作者Hossein
相关产品推荐
相关产品推荐

