我是熊猫新手,一直在努力完成这项简单的任务。给定以下数据框:
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.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
您可以这样做:
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]