python - 如何缩放其中包含日期时间字段的数据框(作为索引)?
问题描述
我想缩放一个数据框,这会引发标题(或以下)中的错误。
我的数据:
df.head()
timestamp open high low close volume
0 2020-06-25 303.4700 305.26 301.2800 304.16 46340400
1 2020-06-24 309.8400 310.51 302.1000 304.09 123867696
2 2020-06-23 313.4801 314.50 311.6101 312.05 68066900
3 2020-06-22 307.9900 311.05 306.7500 310.62 74007212
4 2020-06-19 314.1700 314.38 306.5300 308.64 135211345
我的代码:
# Converting the index as date
from datetime import datetime
df.index = pd.to_datetime(df.index)
# Split data
split = len(df) - int(len(df) * 0.8)
df_train = df.iloc[split:]
df_test = df.iloc[:split]
# Normalize
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
df_train = df_train.values.reshape(-1,1) #df_train = scaler.fit_transform(df_train)
df_test = df_test.values.reshape(-1,1) #df_test = scaler.fit_transform(df_train)
# Train the Scaler with training data and smooth data
timestep = 21
for i in range(0,len(df),timestep):
df_train = scaler.fit_transform(df_train[i:i+timestep,:])
#train_data[di:di+smoothing_window_size,:] = scaler.transform(train_data[di:di+smoothing_window_size,:])
# You normalize the last bit of remaining data
df_test = scaler.fit_transform(df_test[i+timestep:,:])
#train_data[di+timestep:,:] = scaler.transform(train_data[di+timestep:,:])
错误:
2 timestep = 21 3 for i in range(0,len(df),timestep): ----> 4 df_train = scaler.fit_transform(df_train[i:i+timestep,:]) 5 #train_data[di:di+smoothing_window_size,:] = scaler.transform(train_data[di:di+smoothing_window_size,:])
ValueError:无法将字符串转换为浮点数:'2020-05-28'
将得到帮助。
解决方案
推荐阅读
- javascript - Problem with thumbnail images in gatsby.js
- c++ - Is it a bug of C++ gcc HEAD 10.0.0 20190 relative to friend functions
- node.js - 外部 Web 服务将用户重定向并将数据发布到我的回调 URL。如何在 Express/Next.js 应用程序中将发布的数据呈现给用户?
- php - PhpSpreadsheet 损坏的 xlsx 文件
- c++ - Is it possible swap two elements of a const vector passed as parameter in a function func(say) in c++ ex: vector
func (const vector &v) {}? - genexus - 将 .txt 文件保存在 Genexus 上的过程中的 IBM Iseries 数据库中
- python - Matplotlib set axis limits works in __init__ but not on button click?
- ruby-on-rails - 使用 axlsx gem 将数组导出到 xlsx
- lua - 加载 Lua 函数块,用沙盒修改 5.2 中的环境
- excel - Excel 公式将日期作为标志 (1,0) 获取从现在到过去 1 年的月份。如过去 3 个月、过去 6 个月和年初至今