我有一个数据集,其中包含四个名为X1,X2,X3,X4的输入。 在这里,我创建了lstm模型,以使用四个输入的先前值来预测下一个X1值。
在这里我将时间更改为分钟,然后将时间设置为索引。
然后我创建了x_train,x_test,y_test和y_train。然后,我想花时间在x_train和x_test中。
我使用了代码:
data= pd.DataFrame(data,columns=['X1','X2','X3','X4'])
pd.options.display.float_format = '{:,.0f}'.format
print(data)
数据:
y=data['X1'].astype(int)
cols=['X1', 'X2', 'X3','X4']
x=data[cols].astype(int)
data=data.values
scaler_x = preprocessing.MinMaxScaler(feature_range =(0, 1))
x = np.array(x).reshape ((len(x),4 ))
x = scaler_x.fit_transform(x)
scaler_y = preprocessing.MinMaxScaler(feature_range =(0, 1))
y = np.array(y).reshape ((len(y), 1))
y = scaler_y.fit_transform(y)
train_end = 80
x_train=x[0: train_end ,]
x_test=x[train_end +1: ,]
y_train=y[0: train_end]
y_test=y[train_end +1:]
x_train=x_train.reshape(x_train.shape +(1,))
x_test=x_test.reshape(x_test.shape + (1,))
x_train = x_train.drop('time', axis=1)
x_test = x_test.drop('time', axis=1)
然后出现错误:'numpy.ndarray' object has no attribute 'drop'
有人可以帮助我解决此错误吗?
答案 0 :(得分:1)
由于提取了Pandas数据框的值,因此数据已转换为NumPy数组,因此已删除了列名。时间列是数据的第一列,因此您真正需要做的就是对它进行索引,以便提取第二列并继续:
x_time_train = x_train[:, 0]
x_train = x_train[:, 1:]
x_time_test = x_test[:, 0]
x_test = x_test[:, 1:]
请注意,我已经按照需要将训练和测试数据集的时间值分开绘制了。
答案 1 :(得分:0)
X_train是一个数组而不是数据框 您需要知道要删除的列的位置
np.delete(X_train, [index_to_drop], 1)