规范化我的时间序列数据集,然后将时间戳设置为Index



这是我试图规范化数据集的代码,代码有效,但问题是当我创建新的数据帧(代码的最后一行(时,它不包括时间戳列,因为它只包括缩放的值。

data_consumption2 = pd.read_excel(r"C:UsersuserDesktopThesisTarekParent.xlsx", sheet_name="Consumption")
data_consumption2['Timestamp'] = pd.to_datetime(data_consumption2['Timestamp'], unit='s')
data_consumption2.fillna(0,inplace=True)
data_consumption2 = data_consumption2.set_index('Timestamp')
#returns a numpy array
min_max_scaler = preprocessing.MinMaxScaler()
x_scaled = min_max_scaler.fit_transform(data_consumption2.values)
data_consumption2 = pd.DataFrame(x_scaled)

我希望任何人都能帮助我在中获得带有时间戳和缩放值的原始数据帧

您必须设置创建的新数据帧的索引。

min_max_scaler.fit_transform返回的是缩放值的numpy数组(因此丢失索引(。

所以你可以做:

data_consumption2 = pd.DataFrame(data=x_scaled, index=data_consumption2.index)

如果您还想检索列,也可以传递它们:

data_consumption2 = pd.DataFrame(data=x_scaled,
index=data_consumption2.index, 
columns=data_consumption2.columns)

DataFrame文档中的更多详细信息:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.html

这些都是熊猫的基本操作,你应该在它们的文档中找到所有关于它的答案。

最新更新