给定此数据帧
GDP quarter
0 250 2015q1
1 260 2015q1
2 250 2015q3
3 240 2015q4
4 250 2016q1
5 260 2016q2
我如何才能计算出哪些季度是衰退,哪些季度是复苏?
衰退是指国内生产总值连续两个季度下降
复苏是指GDP在下降,但现在在上升。
发布于 2017-01-25 12:58:21
这里需要使用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
https://stackoverflow.com/questions/41849806
复制