在Numpy genfromtx中加载日期

2024-05-06 00:13:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图导入一个简单的CSV文件,但无法将第一列的数据转换为日期。在

这是我的代码:

import numpy as np
from datetime import datetime

str2date = lambda x: datetime.strptime(x, '%Y-%m-%d %H:%M:%S')

data = np.genfromtxt('C:\\\\data.csv',dtype=None,names=True, delimiter=',', converters = {0: str2date})

我在str2date中得到以下错误:

TypeError: must be str, not bytes

问题是有很多列,所以我宁愿避免指定所有的列类型(基本上都是数值的)。在


Tags: 文件csv数据lambda代码fromimportnumpy
2条回答

这是个好主意。当我尝试在python3.4中使用numpy时,我也遇到了同样的问题。python不需要7.10。谢谢您。:-)这是我的样品。在

文件输入:

06-07-2016,95.5300,30877540.0000,94.6000,95.6600,94.3700
05-07-2016,95.0400,27553750.0000,95.3900,95.4000,94.4600
01-07-2016,95.8900,25982080.0000,95.4900,96.4650,95.3300*

代码:

^{pr2}$

问题是传递给str2date的参数的格式是b'%Y-%m-%d %H:%M:%S'。这些是字节,不能正确地解析为datetime对象。这个问题的解决方案非常简单,因为您应该将字节字符串解码为UTF-8字符串:

str2date = lambda x: datetime.strptime(x.decode("utf-8"), '%Y-%m-%d %H:%M:%S')

相关问题 更多 >