【问题标题】:Removing the Timestamp from a NumPy Array从 NumPy 数组中删除时间戳
【发布时间】:2019-12-24 20:27:25
【问题描述】:

我正在对一个数据集(Excel 文件)执行线性回归,该数据集包含一个日期列、一个分数列和一个名为 Predictions 的附加列,该列将用于存储预测值。

我发现我的自变量 X 包含我实际上期望的时间戳...?也许我做错了什么,或者实际上错过了什么......?

原始数据集的顶部:

       Date    Score
0 2019-05-01 4.607744 
1 2019-05-02 4.709202 
2 2019-05-03 4.132390 
3 2019-05-05 4.747308 
4 2019-05-07 4.745926 

创建独立数据集 (X)
将数据框转换为 numpy 数组

X = np.array(df.drop(['Prediction'],1))

删除最后 '30' 行

X = X[:-forecast_out]
print(X)

输出示例:

[[Timestamp('2019-05-01 00:00:00') 4.607744342064972]
[Timestamp('2019-05-02 00:00:00') 4.709201914086133]
[Timestamp('2019-05-03 00:00:00') 4.132389742485806]
[Timestamp('2019-05-05 00:00:00') 4.74730802483691]
[Timestamp('2019-05-07 00:00:00') 4.7459264970444615]
[Timestamp('2019-05-08 00:00:00') 4.595303054619376]

创建依赖数据集(y) 将数据框转换为 numpy 数组

y = np.array(df['Prediction'])

获取除最后 '30' 行之外的所有 y 值

y = y[:-forecast_out]
print(y)

部分输出:

[4.63738251 4.34354486 5.12284464 4.2751933  4.53362196 4.32665058
 4.77433793 4.37496465 4.31239161 4.90445026 4.81738271 3.99114536
 5.21672369 4.4932632  4.46858993 3.93271862 4.55618508 4.11493084
 4.02430584 4.11672606 4.19725244 4.3088558  4.98277563 4.97960989

将数据分成 80% 的训练和 20% 的测试

x_train, x_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

创建和训练线性回归模型

lr = LinearRegression()

训练模型

lr.fit(x_train, y_train)

错误:

TypeError: float() argument must be a string or a number, not 'Timestamp'

显然数据集 X 不喜欢有时间戳,就像我说的那样,我并没有真正期待它。

任何关于删除它的帮助(或者我可能需要它!?)会很棒。如您所见,我只是想执行一个简单的回归分析

【问题讨论】:

  • Excel文件中的时间戳是否也在同一列中?
  • @MRL 在 X 初始化期间删除“日期”和“预测”。

标签: python numpy timestamp


【解决方案1】:

我认为这个问题可以通过使用日期时间戳作为索引字段来解决。您可以尝试 reset_index 重新分配索引。

【讨论】:

    【解决方案2】:

    不要在创建“X”时包含时间戳(日期)。

    数据集已经排序,那么你真的需要时间戳吗?另一种选择,尝试重新分配索引。我认为,无论哪种情况,都不要尝试将时间戳作为参数数据传递。

    在此步骤实施更改:

    X = np.array(df.drop(['Prediction'],1))
    

    执行以下操作:

     X = np.array(df.drop(['Date', 'Prediction'],1))
    

    【讨论】:

    • 干杯。不知道为什么时间戳作为数据传递,我以前从未遇到过这个问题。
    猜你喜欢
    • 2018-05-04
    • 2018-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-22
    • 2012-06-28
    相关资源
    最近更新 更多