一、python numpy加載數據 loadtxt——關於TypeError: strptime() argument 1 must be str, not bytes解析
在使用datetime.strptime(s,fmt)來輸出結果日期結果時,出現錯誤
TypeError: strptime() argument 1 must be str, not bytes
源代碼如下
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)
data.csv內容如下
編譯器在打開data.csv文件時,將表格裏的第2列數組值提取出來返回給dates,第二列值是日期格式字符串,但因爲讀取時是以二進制編碼的格式讀取第二列值,其返回的值字節字符串bytes,所以需要對字符串進行解碼,其解碼用函數decode('asii'),使bytes格式變成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)