0

I have a dataset with two columns, Earning and Inflation_rate Assuming the Dataset looks like this

0   Earning   Inflation_rate
1   10000       0.00
2   12000       0.12
3   13000       0.13

I need to see how much it has built up over the course of these years, the formula is (Income build until last year x inflation rate) + (first year earning/75)

For Year 1 that would be: ( 0 x 0.00 ) + (10000/75)

For Year 2 that would be: (133 x 0.12) + (12000/75)

My code is the following:

y=int(input("Please enter the number of years of contribution: "))
income_built=0
divide=75

for i in range(1,y+1):
    income_built=(income_built*df['Inflation_rate'].iloc[i-1,i])+(df['Earning'].iloc[i-1,i])/divide

print(int(income_built))

And I get the error IndexingError: Too many indexers

How can I solve this ? Thank you!

Ynjxsjmh
  • 28,441
  • 6
  • 34
  • 52

1 Answers1

0

The error is coming from your use of df['Inflation_rate'].iloc[i-1,i] and df['Earning'].iloc[i-1,i].

Pandas has a number of different ways of accessing values in a df, but the two most used are loc and iloc, both of which are explained well here.

I am slightly unclear about the formula you're trying to use. But I think if df['Inflation_rate'].iloc[i-1,i] is changed to df.loc[i-1,'Inflation_rate'] and df['Earning'].iloc[i-1,i] is changed to df.loc[i-1,'Earning', the error should dissappear.

OD1995
  • 1,647
  • 4
  • 22
  • 52