我想要得到开始GDP连续两个季度下降的元素的指数。我的代码运行,并返回一个预期类型的值,但该值是错误的。一定是我在计算中遗漏了什么。
这是我的数据框:
Quarter GDP GDP 2009 $
0 2000q1 10031.0 12359.1
1 2000q2 10278.3 12592.5
2 2000q3 10357.4 12607.7
3 2000q4 10472.3 12679.3
4 2001q1 10508.1 12643.3
5 2001q2 10638.4 12710.3
6 2001q3 10639.5 12670.1
7 2001q4 10701.3 12705.3
8 2002q1 10834.4 12822.3
9 2002q2 10934.8 12893.0
.... .... .... 下面是我的代码:
gdp_df['recession start'] = 0
i = 1
while i < (len(gdp_df)-1):
row1 = gdp_df.iloc[i-1]
row2 = gdp_df.iloc[i]
row3 = gdp_df.iloc[i+1]
if ((row3['GDP'] - row2['GDP']) < 0) and ((row2['GDP'] - row1['GDP']) < 0):
gdp_df.iloc[i-1, 3] = 1
i += 1
gdp_df = gdp_df.where(gdp_df['recession start'] == 1).dropna().iloc[0]
gdp_df = str(gdp_df['Quarter'])
return gdp_df发布于 2018-08-19 11:33:56
问题出在
gdp_df.iloc[i, 3] = 1我返回的是第二个值,因为我从1开始,而不是0。正确的代码如下: gdp_df.iloci-1,3=1
https://stackoverflow.com/questions/51914164
复制相似问题