【发布时间】:2020-02-11 20:29:34
【问题描述】:
下面的代码不起作用我正在尝试在我的 CSV 文件的(时间)列中转换(时间序列数据),其中只包含我需要转换或规范化的一列:
# Normalize time series data
from pandas import read_csv
from sklearn.preprocessing import MinMaxScaler
# load the dataset and print the first 5 rows
series = read_csv("E:\Dataset\Copy3.csv", header=0)
print(series.head())
# prepare data for normalization
values = series.values
values = values.reshape((len(values), 1))
# train the normalization
scaler = MinMaxScaler(feature_range=(0, 1))
scaler = scaler.fit(values)
print('Min: %f, Max: %f' % (scaler.data_min_, scaler.data_max_))
# normalize the dataset and print the first 5 rows
normalized = scaler.transform(values)
for i in range(5):
print(normalized[i])
# inverse transform and print the first 5 rows
inversed = scaler.inverse_transform(normalized)
for i in range(5):
print(inversed[i])
Output:
Time
0 0:35:00
1 0:55:00
2 0:59:00
3 2:11:00
4 2:45:00
我收到此错误: Press here to show Error details ValueError:无法将字符串转换为浮点数:'0:35:00'
我希望得到一些帮助,谢谢大家
【问题讨论】:
-
哪一行有问题?始终将完整的错误消息(从单词“Traceback”开始)作为文本(不是截图)(不是评论)。还有其他有用的信息。
-
string
"0:35:00"不是浮点值,所以你想做什么?也许您应该将其转换为datetime对象,然后获得总秒数。 -
感谢您的重播,我现在将对其进行编辑。
-
您正在分配 scaler = scaler.fit(values) ,而您正在使用它进行逆变换,这就是您收到错误的原因..
-
我想在 (0-1) 范围内实时缩放,例如 (0:35:00) 到 0.551242
标签: python numpy time-series normalization scaling