如何在Python中使用Pandas生成指定年份范围的季度列表
Pandas生成指定年份区间季度列表的实现方法
场景1:直接指定起止年份生成季度列表
你可以直接使用pd.period_range()方法指定时间范围和季度频率,再格式化输出即可:
import pandas as pd start_year = 2018 end_year = 2020 # 生成指定区间的季度列表 quarter_list = pd.period_range( start=f"{start_year}-01-01", end=f"{end_year}-12-31", freq="Q" ).strftime("%Y-q%q").tolist()
输出结果示例:['2018-q1', '2018-q2', '2018-q3', '2018-q4', '2019-q1', '2019-q2', '2019-q3', '2019-q4', '2020-q1', '2020-q2', '2020-q3', '2020-q4']
场景2:从已有DataFrame的日期列提取覆盖的季度列表
对应你给出的参考代码场景,你可以对PeriodIndex结果做格式化和去重处理,得到需要的列表:
# df为包含date日期列的DataFrame对象 quarter_list = pd.PeriodIndex(df['date'], freq="Q")\ .strftime("%Y-q%q")\ .drop_duplicates()\ .tolist()
补充说明
freq="Q"默认使用自然年季度(1-3月为Q1,以此类推),如果需要适配财年规则,可以修改为Q-DEC(财年12月结束,和自然年一致)、Q-MAR(财年3月结束,3-5月为Q1)等参数%Y-q%q为格式化规则,你可以根据需要调整输出格式,比如换成%Y年第%q季度就能得到2018年第1季度类的输出
内容的提问来源于stack exchange,提问作者ah bon
相关产品推荐
相关产品推荐

