我有这个简单的python程序来使用matplotlib绘制图形。
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
from datetime import datetime
days, impressions = np.loadtxt("page-impressions.csv", unpack=True,
converters={ 0: mdates.strpdate2num('%Y-%m-%d')})
plt.plot_date(x=days, y=impressions, fmt="r-")
plt.title("Pageessions on example.com")
plt.ylabel("Page impressions")
plt.grid(True)
plt.savefig('test.pdf', format='pdf')
如果我使用python3
运行此操作,则会出现以下错误。
TypeError: strptime() argument 0 must be str, not <class 'bytes'>
我做错了什么?
b.t.w我试过了http://stackoverflow.com/questions/21117311/time-strptime-argument-0-must-be-str-not-bytes
的建议
似乎不适合我
答案 0 :(得分:0)
以下代码中的相同问题:
import numpy as np
import datetime
def datestr2num(s):
return datetime.datetime.strptime(s, "%Y-%m-%d").date().weekday()
# 读取CSV文件,设置分隔号,取元组第4,5字段,分拆存储不同列数据
d = np.loadtxt('AAPL_data.csv', delimiter=',', usecols=(0),converters={0 : datestr2num}, unpack=True)
只需改变:
return datetime.datetime.strptime(s.decode("ASCII"), "%Y-%m-%d").date().weekday()