这段代码过去有用,现在不行了。因为我一辈子都搞不清是怎么回事。我猜这和for循环有关,但仅此而已。在
import pandas as pd
LastFY = 2017
n = 15
DeclRate = 0.1
Res = 442.364
LFY_Vol = 27.8
Col_Names = ['Year', 'Reserves', 'Prod']
df = pd.DataFrame(columns=Col_Names)
df_add = pd.DataFrame(columns=Col_Names)
df['Year'] = [LastFY]
df['Prod'] = [LFY_Vol]
df['Reserves'] = [Res]
for i in range(1, n+1):
FY = df['Year'][i-1] + 1
if df['Prod'][i-1] * (1 - DeclRate) > df['Reserves'][i-1]:
Prod_A = df['Reserves'][i-1]
else:
Prod_A = df['Prod'][i-1] * (1 - DeclRate) if i < n else df['Reserves'][i-1]
Reserves_A = df['Reserves'][i-1] - Prod_A
df_add['Year'] = [FY]
df_add['Reserves'] = [Reserves_A]
df_add['Prod'] = [Prod_A]
df = df.append(df_add, ignore_index=True)
df.round(0).style
谢谢。在
这是我得到的错误代码。。。在
^{pr2}$
您已将
n
定义如下:然后用一行定义一个数据帧:
^{pr2}$然后迭代
range(1, 16)
:但是,由于数据帧只有一行索引为
0
,df['Year'][1]
将返回KeyError
。这正是你应该期待的。在你还没有解释你要达到什么目的。您可以在a new question中执行此操作。上面的解释描述了为什么你得到了你的错误。一般来说,
print
是一个有用的函数,用于确定每个阶段发生了什么。在相关问题 更多 >
编程相关推荐