运行以下代码,发现报错
def datestr2num(s):
return datetime.strptime(s, "%d-%m-%Y").date().weekday()
dates=np.loadtxt('data.csv', delimiter=',', usecols=(1,), converters={1: datestr2num}, unpack=True)
报错如下:
TypeError: strptime() argument 1 must be str, not bytes
data.csv文件如下:
data.csv文件第二列数据为日期格式字符串,loadtxt()默认读取数据需要为二进制编码格式,而返回的值为字节字符串bytes,所以需要把它转化二进制格式的string,故需要对字符串解码,使用函数decode(‘asii’),变成string格式。
代码改为:
def datestr2num(s):
return datetime.strptime(s.decode('ascii'), "%d-%m-%Y").date().weekday()
dates=np.loadtxt('data.csv', delimiter=',', usecols=(1,), converters={1: datestr2num}, unpack=True)
以上为个人整理总结的知识,如有遗漏或错误欢迎留言指出、点评,如要引用,请联系通知,未经允许谢绝转载。