gpt4 book ai didi

python - Pandas datetime 函数获取季度末的日期

转载 作者:行者123 更新时间:2023-12-02 01:47:07 26 4
gpt4 key购买 nike

我有一个包含年度季度列的数据框df.period我想使用此代码将该列转换为 DatetimeIndex

# 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中的解决方案Forcing end of quarter date for as.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

关于python - Pandas datetime 函数获取季度末的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60557104/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com