我试图用Numpy genfromtxt导入一个简单的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中得到以下错误:
类型错误:必须是str,而不是bytes
问题是有许多列,所以我宁愿避免指定所有列类型(基本上是数值型的)。
最佳答案
问题是传递给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')