我有以下每季度更新的输入数据样本。我想将这个季度数据添加到上一个季度表中,如输出中所示。我试了很多方法,但找不到正确的方法。
输入数据框:
FIRST2007Q12007Q12007Q12007Q22007Q22007Q22007Q32007Q32007Q32007Q42007Q42007Q42008Q12008Q12008Q1
输出:
First Last2007Q1 2006Q42007Q1 2006Q42007Q1 2006Q42007Q2 2007Q12007Q2 2007Q12007Q2 2007Q12007Q3 2007Q22007Q3 2007Q22007Q3 2007Q22007Q4 2007Q32007Q4 2007Q32007Q4 2007Q32008Q1 2007Q42008Q1 2007Q42008Q1 2007Q4
有人能帮我用python解决这个问题吗。我需要这个来做进一步的分析。谢谢!

最佳答案

如果列是字符串,请将其转换为Period对象:

df['FIRST'] = pd.PeriodIndex(df.FIRST, freq='Q')

接下来,使用pd.PeriodIndex.shift
df['LAST'] = df['FIRST'].shift(-1)

df

     FIRST   LAST
0   2007Q1 2006Q4
1   2007Q1 2006Q4
2   2007Q1 2006Q4
3   2007Q2 2007Q1
4   2007Q2 2007Q1
5   2007Q2 2007Q1
6   2007Q3 2007Q2
7   2007Q3 2007Q2
8   2007Q3 2007Q2
9   2007Q4 2007Q3
10  2007Q4 2007Q3
11  2007Q4 2007Q3
12  2008Q1 2007Q4
13  2008Q1 2007Q4
14  2008Q1 2007Q4

10-08 14:51