我是熊猫的新手,一直在努力完成这项简单的任务。给定以下数据帧:
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.Period
和end_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