当使用Pandas进行时间序列分析时,获取季度、月度和年度首尾日期是一个非常常见的需求。下面是一些获取季度、月度和年度首尾日期的方法。
获取季度,月度,年度首尾日期的方法
Pandas提供了pd.Period
和pd.date_range
这两个对象来进行处理时间序列,下面会具体介绍如何使用它们来获取季度、月度和年度首尾日期。
季度首尾日期
import pandas as pd
# 构建日期范围
period = pd.period_range('2020-01-01', '2020-12-31', freq='Q')
# 获取季度首尾日期
for p in period:
q_st = p.start_time # 季度开始日期
q_et = p.end_time # 季度结束日期
print(f"第{p.quarter}季度,开始时间: {q_st}, 结束时间: {q_et}")
输出:
第1季度,开始时间: 2020-01-01 00:00:00, 结束时间: 2020-03-31 23:59:59.999999999
第2季度,开始时间: 2020-04-01 00:00:00, 结束时间: 2020-06-30 23:59:59.999999999
第3季度,开始时间: 2020-07-01 00:00:00, 结束时间: 2020-09-30 23:59:59.999999999
第4季度,开始时间: 2020-10-01 00:00:00, 结束时间: 2020-12-31 23:59:59.999999999
月度首尾日期
import pandas as pd
# 构建日期范围
period = pd.period_range('2020-01-01', '2020-12-31', freq='M')
# 获取月度首尾日期
for p in period:
m_st = p.start_time # 月份开始日期
m_et = p.end_time # 月份结束日期
print(f"{p.year:4d}年{p.month:2d}月,开始时间: {m_st}, 结束时间: {m_et}")
输出:
2020年 1月,开始时间: 2020-01-01 00:00:00, 结束时间: 2020-01-31 23:59:59.999999999
2020年 2月,开始时间: 2020-02-01 00:00:00, 结束时间: 2020-02-29 23:59:59.999999999
2020年 3月,开始时间: 2020-03-01 00:00:00, 结束时间: 2020-03-31 23:59:59.999999999
2020年 4月,开始时间: 2020-04-01 00:00:00, 结束时间: 2020-04-30 23:59:59.999999999
2020年 5月,开始时间: 2020-05-01 00:00:00, 结束时间: 2020-05-31 23:59:59.999999999
2020年 6月,开始时间: 2020-06-01 00:00:00, 结束时间: 2020-06-30 23:59:59.999999999
2020年 7月,开始时间: 2020-07-01 00:00:00, 结束时间: 2020-07-31 23:59:59.999999999
2020年 8月,开始时间: 2020-08-01 00:00:00, 结束时间: 2020-08-31 23:59:59.999999999
2020年 9月,开始时间: 2020-09-01 00:00:00, 结束时间: 2020-09-30 23:59:59.999999999
2020年10月,开始时间: 2020-10-01 00:00:00, 结束时间: 2020-10-31 23:59:59.999999999
2020年11月,开始时间: 2020-11-01 00:00:00, 结束时间: 2020-11-30 23:59:59.999999999
2020年12月,开始时间: 2020-12-01 00:00:00, 结束时间: 2020-12-31 23:59:59.999999999
年度首尾日期
import pandas as pd
# 构建日期范围
period = pd.period_range('2020-01-01', '2022-12-31', freq='Y')
# 获取年度首尾日期
for p in period:
y_st = p.start_time # 年度开始日期
y_et = p.end_time # 年度结束日期
print(f"{p.year}年度,开始时间: {y_st}, 结束时间: {y_et}")
输出:
2020年度,开始时间: 2020-01-01 00:00:00, 结束时间: 2020-12-31 23:59:59.999999999
2021年度,开始时间: 2021-01-01 00:00:00, 结束时间: 2021-12-31 23:59:59.999999999
2022年度,开始时间: 2022-01-01 00:00:00, 结束时间: 2022-12-31 23:59:59.999999999
从以上示例可以看出,pd.Period
和pd.date_range
是非常方便的时间序列对象,通过其的一些方法,我们可以快速地获取季度、月度和年度首尾日期。需要注意的是,在使用开始和结束时间时,为了避免时区的问题和误差,应该使用DateTimeIndex的start_time
和end_time
方法获取季度、月度和年度的开始和结束时间。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:pandas 获取季度,月度,年度首尾日期的方法 - Python技术站