ValueError:无法将字符串转换为浮点数:'07/06/2019'

Posted

技术标签:

【中文标题】ValueError:无法将字符串转换为浮点数:\'07/06/2019\'【英文标题】:ValueError: could not convert string to float: '07/06/2019'ValueError:无法将字符串转换为浮点数:'07/06/2019' 【发布时间】:2022-01-05 17:13:21 【问题描述】:

我正在对共享单车数据进行线性回归分析。我有兴趣根据其他因素预测自行车数量。

所以我像这样拆分数据:

x = df[['rain', 'temp', 'rhum', 'msl', 'wdsp', 'day', 'month', 'monthname', 'season']]

y = df['bikecount']

然后,当我到达这个阶段时:lm.fit(X_train,y_train)

它返回此错误:ValueError: could not convert string to float: '07/06/2019'

我尝试使用 df['date'] = float(df['date']) 将此列转换为浮点数,但返回错误 TypeError: cannot convert the series to 强>

我不明白为什么会不断出现这种情况。我什至对用于分析的日期列不感兴趣。任何帮助将不胜感激!

0 日期时间 6040 非空日期时间64[ns] 1 自行车计数 6040 非空 int64 2 雨 6040 非空 float64 3 临时 6040 非空 float64 4 rhum 6040 非空 int64 5 msl 6040 非空 float64 6 wdsp 6040 非空 int647 日期 6040 非空对象 8次6040非空对象 9 天 6040 非空对象 10 个月 6040 非空 int64 11 月名 6040 非空对象 12季6040非空对象 数据类型:datetime64ns、float64(3)、int64(4)、object(5) 内存使用量:613.6+ KB

datetime bikecount rain temp rhum msl wdsp date datetime.1 day month monthname season
2019-01-01 00:00:00 1 0.0 9.9 78 1036.0 4 01/01/2019 00:00:00 Tuesday 1 January Winter
2019-01-01 07:00:00 1 0.0 8.3 87 1036.8 2 01/01/2019 07:00:00 Tuesday 1 January Winter
2019-01-01 11:00:00 2 0.0 9.5 89 1038.8 3 01/01/2019 11:00:00 Tuesday 1 January Winter
2019-01-01 12:00:00 4 0.0 10.1 84 1038.7 3 01/01/2019 12:00:00 Tuesday 1 January Winter

【问题讨论】:

对于这个日期01/01/2019,预期的结果是什么? 【参考方案1】:

您可以将日期转换为自 1970-01-01 以来经过的秒数

# Sample
df = pd.DataFrame('date': ['01/11/2019']

df['date'] = pd.to_datetime(df['date'], dayfirst=True) \
               .sub(pd.to_datetime(0)) \
               .dt.total_seconds()

输出:

# Before conversion:
>>> df
         date
0  01/11/2019

# After conversion:
>>> df
           date
0  1.572566e+09

【讨论】:

以上是关于ValueError:无法将字符串转换为浮点数:'07/06/2019'的主要内容,如果未能解决你的问题,请参考以下文章

ValueError:无法将字符串转换为浮点数:'2100 - 2850'

ValueError:无法将字符串转换为浮点数:'Mme'

ValueError:无法将字符串转换为浮点数:'62,6'

ValueError:无法将字符串转换为浮点数:''20,99''

我收到 ValueError:无法将字符串转换为浮点数:'8,900' [重复]

ValueError:无法将字符串转换为浮点数:'31,950'