Pandas:创建具有季度结束日期的列,给定年份列和季度列



我是熊猫的新手,一直在努力完成这项简单的任务。给定以下数据帧:

Year  Qt  Value
0   2010  2   17
1   2015  1   11
2   2020  1   86

我想创建另一个带有季度结束日期的列:

Year  Qt  Value Date
0   2010  2   17    30/06/2010
1   2015  1   11    31/03/2015
2   2020  1   86    31/03/2020

做这件事最好的方法是什么?

您可以使用此pd.to_datetime将列"Year"one_answers"Qt"更改为日期,然后使用向季度末添加偏移量

pd.to_datetime(df['Year'].astype(str)+'Q'+df['Qt'].astype(str))
+ pd.tseries.offsets.QuarterEnd()
0   2010-06-30
1   2015-03-31
2   2020-03-31
dtype: datetime64[ns]

我会使用pd.Periodend_time:

df['Date'] = df.apply(lambda x: pd.Period(f"{x['Qt']}Q{x['Year']}" ).end_time.strftime('%d/%m/%Y'), axis=1)

输出:

Year  Qt  Value        Date
0  2010   2     17  30/06/2010
1  2015   1     11  31/03/2015
2  2020   1     86  31/03/2020

最新更新