Error is as follows:
JavaScript
x
20
20
1
Traceback (most recent call last):
2
File "/Users/myname/PycharmProjects/LSTM1P/venv/lib/python3.7/site-packages/pandas/core/indexes/base.py", line 3080, in get_loc
3
return self._engine.get_loc(casted_key)
4
File "pandas/_libs/index.pyx", line 70, in pandas._libs.index.IndexEngine.get_loc
5
File "pandas/_libs/index.pyx", line 101, in pandas._libs.index.IndexEngine.get_loc
6
File "pandas/_libs/hashtable_class_helper.pxi", line 4554, in pandas._libs.hashtable.PyObjectHashTable.get_item
7
File "pandas/_libs/hashtable_class_helper.pxi", line 4562, in pandas._libs.hashtable.PyObjectHashTable.get_item
8
KeyError: 'Open'
9
10
The above exception was the direct cause of the following exception:
11
12
Traceback (most recent call last):
13
File "/Users/myname/PycharmProjects/LSTM1P/matplottest.py", line 47, in <module>
14
dataset_total = pd.concat((dataset_train['Open'], dataset_test['Open']), axis = 0)
15
File "/Users/myname/PycharmProjects/LSTM1P/venv/lib/python3.7/site-packages/pandas/core/frame.py", line 3024, in __getitem__
16
indexer = self.columns.get_loc(key)
17
File "/Users/myname/PycharmProjects/LSTM1P/venv/lib/python3.7/site-packages/pandas/core/indexes/base.py", line 3082, in get_loc
18
raise KeyError(key) from err
19
KeyError: 'Open'
20
My Code is as follows:
JavaScript
1
68
68
1
import numpy as np
2
import matplotlib.pyplot as plt
3
import pandas as pd
4
import keras
5
6
url = 'https://raw.githubusercontent.com/khammerberg53/MLPROJ1/main/SP500.csv'
7
dataset_train = pd.read_csv(url)
8
training_set = dataset_train.iloc[:, 1:2].values
9
10
dataset_train.head()
11
print(dataset_train.head())
12
13
from sklearn.preprocessing import MinMaxScaler
14
sc = MinMaxScaler(feature_range=(0,1))
15
training_set_scaled = sc.fit_transform(training_set)
16
17
X_train = []
18
y_train = []
19
for i in range(60, 2000):
20
X_train.append(training_set_scaled[i-60:i, 0])
21
y_train.append(training_set_scaled[i, 0])
22
X_train, y_train = np.array(X_train), np.array(y_train)
23
X_train = np.reshape(X_train, (X_train.shape[0], X_train.shape[1], 1))
24
25
from keras.models import Sequential
26
from keras.layers import LSTM
27
from keras.layers import Dropout
28
from keras.layers import Dense
29
30
model = Sequential()
31
model.add(LSTM(units=50,return_sequences=True,input_shape=(X_train.shape[1], 1)))
32
model.add(Dropout(0.2))
33
model.add(LSTM(units=50,return_sequences=True))
34
model.add(Dropout(0.2))
35
model.add(LSTM(units=50,return_sequences=True))
36
model.add(Dropout(0.2))
37
model.add(LSTM(units=50))
38
model.add(Dropout(0.2))
39
model.add(Dense(units=1))
40
model.compile(optimizer='adam',loss='mean_squared_error')
41
model.fit(X_train,y_train,epochs=100,batch_size=32)
42
43
url = 'https://raw.githubusercontent.com/khammerberg53/MLPROJ1/main/SP500%20test%20setcsv.csv'
44
dataset_train = pd.read_csv(url)
45
training_set = dataset_train.iloc[:, 1:2].values
46
47
dataset_total = pd.concat((dataset_train['Open'], dataset_test['Open']), axis = 0)
48
inputs = dataset_total[len(dataset_total) - len(dataset_test) - 60:].values
49
inputs = inputs.reshape(-1,1)
50
inputs = sc.transform(inputs)
51
X_test = []
52
for i in range(3, 100):
53
X_test.append(inputs[i-60:i, 0])
54
X_test = np.array(X_test)
55
X_test = np.reshape(X_test, (X_test.shape[0], X_test.shape[1], 1))
56
predicted_stock_price = model.predict(X_test)
57
predicted_stock_price = sc.inverse_transform(predicted_stock_price)
58
59
plt.plot(real_stock_price, color = 'black', label = 'TATA Stock Price')
60
plt.plot(predicted_stock_price, color = 'green', label = 'Predicted TATA Stock Price')
61
plt.title('TATA Stock Price Prediction')
62
plt.xlabel('Time')
63
plt.ylabel('TATA Stock Price')
64
plt.legend()
65
plt.show()
66
67
print(plt.show())
68
Not sure what’s going on….
Advertisement
Answer
Just check you train dataset, there is no Open
column there, so dataset_train['Open']
fails:
JavaScript
1
4
1
url = 'https://raw.githubusercontent.com/khammerberg53/MLPROJ1/main/SP500%20test%20setcsv.csv'
2
dataset_train = pd.read_csv(url)
3
dataset_train.head()
4
Output:
JavaScript
1
7
1
Date Value
2
0 1994-09-02 470.99
3
1 1994-09-09 468.18
4
2 1994-09-16 471.19
5
3 1994-09-23 459.67
6
4 1994-09-30 462.71
7
Maybe you want to use dataset_train['Value']
instead