Search code examples
pythonpandaslistindexing

TypeError: 'Int64Index' object is not callable


Why am I getting this error?

ticker = 'NFLX'
price = get_data(ticker, start_date='2020-01-01', end_date=None, index_as_date=bool, interval ='1d')
price.to_csv(r'D:\Python Stuff\pythonProject\NFLX.csv')
df = pd.read_csv('NFLX.csv')
price_list = df['adjclose']
change = price_list.diff(1)


def RSI():
    change.dropna(inplace=True)
    positive = change.copy()
    negative = change.copy()
    positive[positive < 0] = 0
    negative[negative > 0] = 0

    RSI_days = 5

    average_gain = positive.rolling(window=RSI_days).mean()
    average_loss = abs(negative.rolling(window=RSI_days).mean())
    relative_strength = average_gain/average_loss
    rsi = 100.0-(100.0/(1.0+relative_strength))
    return rsi

relative_strength_index = RSI()

print(relative_strength_index[-6:])

lowest_rsi = min(relative_strength_index[-6:])
print(lowest_rsi)

index_number = relative_strength_index[-6:].index(lowest_rsi)
print('index of lowest rsi = ' + index_number)

When I run the code, my error is "TypeError: 'Int64Index' object is not callable". How can I improve this code to resolve this error?


Solution

  • Replace the parenthesis in index(lowest_rsi) by brackets

    index_number = relative_strength_index[-6:].index[lowest_rsi.astype(int)]
    print('index of lowest rsi = ' + index_number)
    

    Edit: Your code should probably look something like this:

    relative_strength_index = RSI()
    
    print(relative_strength_index[-6:])
    
    index_number = relative_strength_index[-6:].idxmin()
    print('index of lowest rsi =', index_number)