鉴于此数据框
GDP quarter
0 250 2015q1
1 260 2015q1
2 250 2015q3
3 240 2015q4
4 250 2016q1
5 260 2016q2
我怎样才能弄清楚经济衰退的季度和恢复的季度?
经济衰退是指国内生产总值连续两个季度下降
回归是指国内生产总值正在下降,但现在正在上升。答案 0 :(得分:3)
在这里你需要使用Series.shift函数
由于您的数据不易复制,我只是创建自己的示例数据。
df = pd.DataFrame({"quarter":["2015q1", "2015q1", "2015q3", "2015q4", "2016q1", "2016q2"], "GDP": [250, 260, 250, 240, 250, 260]}
df['Last_GDP'] = df.GDP.shift(1)
df['Increase'] = df.GDP > df.Last_GDP
df['Last_Increase'] = df.Increase.shift(1)
df.ix[(~df.Last_Increase.fillna(False) & ~df.Increase), 'Re-x'] = "Recession"
df.ix[(~df.Last_Increase.fillna(False) & df.Increase), 'Re-x'] = "Recovery"
df.ix[df.Last_Increase.isnull(), 'Re-x'] = "Unknown"
GDP quarter Last_GDP Increase Last_Increase Re-x
0 250 2015q1 NaN False NaN Unknown
1 260 2015q1 250.0 True False Recovery
2 250 2015q3 260.0 False True NaN
3 240 2015q4 250.0 False False Recession
4 250 2016q1 240.0 True False Recovery
5 260 2016q2 250.0 True True NaN