我是熊猫新手,一直在努力完成这项简单的任务。给定以下数据框:
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
做到这一点的最佳方法是什么?
答案 0 :(得分:2)
我将使用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
答案 1 :(得分:2)
您可以使用此pd.to_datetime
来更改“ Year”和“ Qt”列的日期,然后通过以下方式向end of the Quarter添加偏移量:
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]