KeyError 'в Python - PullRequest
       1

KeyError 'в Python

1 голос
/ 30 мая 2020
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as dates
import numpy as np

dt = pd.read_csv("C:\Subhro\ML_Internship\MARUTI_2.csv")
data = pd.DataFrame(dt)

data = data.drop('Date',axis=1)
data.drop(['Unnamed: 0'],axis=1,inplace=True)
print(data)

Roll_Mean_14 = data['Close Price'].rolling(window=14).mean()
Standard_Dev_14 = data['Close Price'].rolling(window=14).mean().std()
Upper_Band_14 = data['Close Price'].rolling(window=14).mean() + (2*Standard_Dev_14)                              
Low_Band_14 = data['Close Price'].rolling(window=14).mean() - (2*Standard_Dev_14)
avg_stock_price = data['Average Price']
stock_price = data['Close Price']

data['Roll_Avg'] = Roll_Mean_14
data['Upper_Band'] = Upper_Band_14
data['Lower_Band'] = Low_Band_14
data['Avg_Stock_Price'] = avg_stock_price

data=data.drop(data.head(14).index, inplace=False)
print(data)

for i in (data):
    if((data['Close Price'][i])<(data['Lower_Band'][i])):
        data['Call'][i]='Buy'
    elif((data['Close Price'][i])>(data['Lower Band'][i])) and ((data['Close Price'][i])<(data['Roll_Avg'])):
        data['Call'][i]='Hold Buy/Liquidate Short'
    elif((data['Close Price'][i])>(data['Roll_Avg'][i])) and ((data['Close Price'][i])<(data['Upper Band'])):
        data['Call'][i]='Hold Short/Liquidate Buy'   
    elif((data['Close Price'][i])>(data['Upper_Band'])):
        data['Call'][i]='Short'
print(data)

В этом коде я создал новый столбец: «Call», чтобы напечатать категории «Buy», «Short», «Hold Buy / Liquidate Short», «Hold Short / Liquidate Buy» в соответствии с условия, указанные в коде. При запуске кода он показывает мне ошибку как

KeyError : 'Symbol' in line 
if((data['Close Price'][i])<(data['Lower_Band'][i])):

1 Ответ

0 голосов
/ 30 мая 2020

Ваш способ доступа к индексам фрейма данных неверен.

Вы можете попробовать следующее:

for i in data.index:
    if((data[i]['Close Price'])<(data[i]['Lower_Band'])):

Способ доступа к определенному значению (ячейке) в фрейме данных (таблица ) это:

данные [row_index] [column_index]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...