ValueError:无法将字符串转换为float:'6/29/2006'

时间:2018-08-22 04:11:25

标签: python-3.x numpy

我的代码如下:

首先,我创建一个零矩阵:

ww = (64,8)
tt14=np.zeros(ww)

这是一个浮点矩阵。当我想给矩阵分配一个字符串值(日期)时,它给了我这个错误:

ValueError: could not convert string to float: '6/29/2006'

问题出在哪里?

1 个答案:

答案 0 :(得分:0)

矩阵需要Float类型,而日期是String类型。您可以先将日期转换为时间戳,然后将日期转换为浮动日期:

import time

date_str = "6/29/2006"
time_tuple = time.strptime(date_str, "%m/%d/%Y")
timestamp = time.mktime(time_tuple)

结果print timestamp

1151503200.0

检索时,我们可以将时间戳转换回字符串:

dt_obj = datetime.fromtimestamp(timestamp)
date_str = dt_obj.strftime("%m/%d/%Y")

结果print date_str

06/29/2006

或在评论中指出

如果仅将数组用于字符串值,则可以将数据类型参数传递给numpy.zeros(),以用空字符串填充矩阵:

ww = (64,8)
tt14=np.zeros(ww, dtype = str)

现在您可以将任何字符串值添加到矩阵中。