举个例子,我有一个2列的数据框架:
Dates code count
2022-01-01 123 202
2022-01-02 123 132
2022-01-03 123 422
2022-01-04 123 220
2022-01-05 123 102
假设我有80行,所以大约3个月的数据。我想用LSTM来做时间序列分析。因此,我输入以下代码,拆分并调用:
train_size = int(len(frame) * 0.8)
val_size = len(frame) - train_size
train, val = frame[0:train_size], frame[train_size:len(frame)]
嫩洋葱
scaler = MinMaxScaler(feature_range=(0, 1))
train = scaler.fit_transform(train)
但是它变成了错误:
The DType <class 'numpy.dtype[int64]'> could not be promoted by <class 'numpy.dtype[datetime64]'>. This means that no common DType exists for the given inputs. For example they cannot be stored in a single array unless the dtype is `object`. The full list of DTypes is: (<class 'numpy.dtype[int64]'>, <class 'numpy.dtype[datetime64]'>, <class 'numpy.dtype[int64]'>)
这个错误到底是什么意思?由于
该错误告诉您,第一列中变量的datetime格式是由"-"分隔的日期,并且该库要求您具有int64形式的数字数据类型或位大小为64的整数来处理。因此,为了解决这个问题,我建议您使用熊猫,并将日期分成各自的日、月、年。例如,您的年是2022
,月是01
,因此它不会产生太多信息,因此您可以使用df['Dates_days']=df[‘Dates’].dt.week
在单独的列中存储星期几,即1,2,3,4,etc.
,信息,并将其用作进一步计算的日期代表。
如果你有3个月的数据,如你所指出的,但同年,你可以连接两列的方式,datetime03-04-2022
是0304
的形式,现在是int64
或一个数字数据类型。您可以对数字施加相应的约束,并将它们用于您想要的任何目的!