Pandas datetime函数用于获取季度末的日期



我有一个包含年度季度列df.period的数据帧我想用这个代码将该列转换为CCD_ 2。

# path is my filepath
df = pd.read_excel(path, skiprows =[1,2,3,4]) # unread first four rows
idx = pd.to_datetime(df.period)
df = df.set_index(pd.DatetimeIndex(idx))

代码对我来说很好;然而,它在PeriodIdx上返回每个季度的第一个日期。

+------------+--------+
| PeriodIdx  | Period |
+------------+--------+
| 2000-01-01 | 2000Q1 |
| 2000-04-01 | 2000Q2 |
| ...        | ...    |
+------------+--------+

但我的目标输出是得到每个季度的结束日期,如下所示。

+------------+--------+
| PeriodIdx  | Period |
+------------+--------+
| 2000-03-31 | 2000Q1 |
| 2000-06-30 | 2000Q2 |
| ...        | ...    |
+------------+--------+

请参阅R强制季度末日期作为.date(as.yearqtr(((中的解决方案,是否有针对季度最后日期的Pandas函数?

解决方案是添加偏移:

idx = pd.DatetimeIndex(pd.to_datetime(df.period) + pd.offsets.MonthEnd(3),
name='PeriodIdx')
df.set_index(idx)

输出:

Period
PeriodIdx         
2000-03-31  2000Q1
2000-06-30  2000Q2

最新更新