【问题标题】:SVM code can't recognize the date time columnSVM 代码无法识别日期时间列
【发布时间】:2021-05-20 04:32:49
【问题描述】:

我按照这篇文章在我的数据上构建了一个 SVM 模型。 https://stackabuse.com/implementing-svm-and-kernel-svm-with-pythons-scikit-learn/

这里是我的数据样本: here

问题是当我运行代码时出现此错误:

ValueError: could not convert string to float: '10/29/2020 8:30'

【问题讨论】:

  • 字符串不适合作为 SVM 输入特征。它们应转换为浮点变量。或者,您可以在将它们从您的数据中排除之后运行 SVM。
  • 时间真的很重要,关于“将它们转换为浮点变量”,你的意思是10292929830?如果没有,你能告诉我怎么做吗?
  • 请不要将您的代码/示例发布为图片。请阅读stackoverflow.com/help/minimal-reproducible-example

标签: python machine-learning scikit-learn svm


【解决方案1】:

您可以将日期转换为时间戳并进行相应处理。

import datetime

s = '10/29/2020 8:30'
date = datetime.datetime.strptime(s, "%m/%d/%Y %H:%M")
date = date.timestamp()

date 现在将是 1603953000.0

编辑:如果您想隐藏 pandas 数据框列,这是一个玩具示例。

import pandas as pd

s = '10/29/2020 8:30'
df = pd.DataFrame({'Date':[s, s, s]})
df['Date'] = pd.to_datetime(df['Date'])
df['Date'] = df['Date'].astype('int64')

输出:

                  Date
0  1603960200000000000
1  1603960200000000000
2  1603960200000000000

【讨论】:

  • 非常感谢您的回复,另一个可能很愚蠢的问题,如果我有一个专栏,我如何将它传递给 datetime.datetime.strptime 函数?
  • 我编辑了我的答案。如果您的问题得到解决,请将其标记为已接受以供将来的查看者使用。
  • 非常感谢您的帮助!我肯定会的
猜你喜欢
  • 2023-04-09
  • 2013-03-03
  • 1970-01-01
  • 2015-10-10
  • 2014-12-30
  • 2018-05-02
  • 1970-01-01
  • 2020-04-26
  • 2018-06-11
相关资源
最近更新 更多