我试图用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')

10-08 20:02