Calculating Recessions And Recoveries Of Quarters
Given this dataframe GDP quarter 0 250 2015q1 1 260 2015q1 2 250 2015q3 3 240 2015q4 4 250 2016q1 5 260 2016q2 How can I figure out what quarters are recessions and
Solution 1:
Here you need to use the Series.shift function
Since your data is not easily copypastable, I'll just create my own example data.
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
02502015q1 NaN False NaN Unknown
12602015q1 250.0TrueFalse Recovery
22502015q3 260.0FalseTrue NaN
32402015q4 250.0FalseFalse Recession
42502016q1 240.0TrueFalse Recovery
52602016q2 250.0TrueTrue NaN
Post a Comment for "Calculating Recessions And Recoveries Of Quarters"