将我的时间序列数据集标准化,然后将时间戳设置为Index。

问题描述 投票:0回答:1

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

data_consumption2 = pd.read_excel(r"C:\Users\user\Desktop\Thesis\Tarek\Parent.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)

我希望有人能帮助我,让我的原始dframe中包含时间戳和缩放值。

python pandas database-normalization
1个回答
1
投票

你必须设置你创建的新数据框架的索引。

什么是 min_max_scaler.fit_transform 返回的是一个按比例排列的numpy数组(因此失去了索引)。

所以你可以用.NET Framework 2.0来实现。

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.orgpandas-docsstablereferenceapipandas.DataFrame.html。

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

© www.soinside.com 2019 - 2024. All rights reserved.