增加python中的财务季度数
我有以下每季度更新的输入数据示例。我想将此季度数据添加到上一个季度表中,如输出中所示。我试了很多方法,但没有找到正确的方法 输入DF:增加python中的财务季度数,python,pandas,numpy,dataframe,logic,Python,Pandas,Numpy,Dataframe,Logic,我有以下每季度更新的输入数据示例。我想将此季度数据添加到上一个季度表中,如输出中所示。我试了很多方法,但没有找到正确的方法 输入DF: 首先 2007年第一季度 2007年第一季度 2007年第一季度 2007年第二季度 2007年第二季度 2007年第二季度 2007年第三季度 2007年第三季度 2007年第三季度 2007年第4季度 2007年第4季度 2007年第4季度 2008年第一季度 2008年第一季度 2008年第一季度 输出: 最后一个 2007年第一季度2006年第四季度
首先
2007年第一季度
2007年第一季度
2007年第一季度
2007年第二季度
2007年第二季度
2007年第二季度
2007年第三季度
2007年第三季度
2007年第三季度
2007年第4季度
2007年第4季度
2007年第4季度
2008年第一季度
2008年第一季度
2008年第一季度
输出:
最后一个
2007年第一季度2006年第四季度
2007年第一季度2006年第四季度
2007年第一季度2006年第四季度
2007年第2季度2007年第1季度
2007年第2季度2007年第1季度
2007年第2季度2007年第1季度
2007年第三季度2007年第二季度
2007年第三季度2007年第二季度
2007年第三季度2007年第二季度
2007年第四季度2007年第三季度
2007年第四季度2007年第三季度
2007年第四季度2007年第三季度
2008年第一季度2007年第四季度
2008年第一季度2007年第四季度
2008年第一季度2007年第四季度
有人能帮我用python解决这个问题吗。我需要这个来进行进一步的分析。谢谢 您可以编写自定义函数来执行此操作:
def last_q(c):
sp = c.split("Q")
yr = sp[0]
q = sp[1]
if int(q) > 1:
return "Q".join([yr,str(int(q)-1)])
else:
return "Q".join([str(int(yr)-1),"4"])
例如:
>a = pd.Series(["2017Q1", "2016Q4"])
>a
0 2017Q1
1 2016Q4
dtype: object
>a.apply(last_q)
0 2016Q4
1 2016Q3
dtype: object
如果列是字符串,请将其转换为
句点
对象:
df['FIRST'] = pd.PeriodIndex(df.FIRST, freq='Q')
接下来,使用pd.PeriodIndex.shift
:
df['LAST'] = df['FIRST'].shift(-1)
如果您希望将其作为一行:
df['LAST'] = pd.PeriodIndex(pd.to_datetime(df['FIRST']) - pd.DateOffset(months=3),freq='Q')
数据类型是什么?数据帧和charMy答案也是一行且更短;)<代码>周期索引(df.FIRST,freq='Q').shift(-1)。关键是,一句话被高估了。没错。只是想增加答案的多样性。我投票赞成你的答案;)
df['LAST'] = pd.PeriodIndex(pd.to_datetime(df['FIRST']) - pd.DateOffset(months=3),freq='Q')