为了账号安全,请及时绑定邮箱和手机立即绑定

Python:无法从 csv 文件中拆分日期

Python:无法从 csv 文件中拆分日期

皈依舞 2021-08-24 19:17:07
我正在尝试从 csv 中绘制日期和价格。但是,该dates.append()函数向我抛出了错误。我能做些什么来解决这个问题?dates=[]prices=[]def getdata(filename):    with open(filename,'r') as csvfile:        csvFilereader=csv.reader(csvfile)        next(csvFilereader)        for row in csvFilereader:            dates.append(int(row[4].split('-')))            prices.append(float(row[2]))    returndef predicted_price(dates, prices, x):    dates=np.reshape(dates,len(dates),1)    svr_linear= SVR(kernel='linear', C=1e3)    svr_poly= SVR(kernel='poly', C=1e3, degree=2)    svr_rbf= SVR(kernel='rbf', C=1e3, gamma=0.1)    svr_linear.fir(dates,prices)    svr_ploy(dates,prices)    svr_rbf(dates,prices)    plt.scatter(dates,prices, color='black', label='Data')    plt.plot(dates, svr.rbf.predict(dates), color='red', label='RBF Model')    plt.plot(dates, svr.poly.predict(dates), color='blue', label='Poly Model')    plt.plot(dates, svr.linear.predict(dates), color='green', label='Linera Model')    plt.xlabel('Dates')    plt.ylabel('Prices')    plt.title('Regression')    plt.legend()    plt.show()    return svr_rbf.predict(x[4]), svr_linerar(x[4]), svr_poly(x[4])getdata('D:\\android\\trans1.csv')predicted_prices=predicted_price(dates,price,30)print(predicted_prices)这是错误消息。TypeError Traceback (most recent call last)<ipython-input-4-63df0e521768> in <module>()     35     return svr_rbf.predict(x[4]), svr_linerar(x[4]), svr_poly(x[4])     36 ---> 37 getdata('D:\\android\\trans1.csv')     38      39 predicted_prices=predicted_price(dates,price,30)<ipython-input-4-63df0e521768> in getdata(filename)      7         next(csvFilereader)      8         for row in csvFilereader:----> 9             dates.append(int(row[4].split('-')))     10             prices.append(float(row[2]))     11     returnTypeError: int() argument must be a string, a bytes-like object or a number, not 'list
查看完整描述

1 回答

?
GCT1015

TA贡献1827条经验 获得超4个赞

一旦你split是一个字符串,你就会返回一个列表,错误发生在这里:


def getdata(filename):

    with open(filename,'r') as csvfile:

        csvFilereader=csv.reader(csvfile)

        next(csvFilereader)

        for row in csvFilereader:

            dates.append(int(row[4].split('-'))) <------------ here

            prices.append(float(row[2])) 

因此,不是将字符串项int转换为您.split(),而是将您的结果(列表)转换为int,这是不可能的。


如果要从列表中选择目标结果,可以尝试从结果中选择特定索引进行测试:


dates.append(int(row[4].split('-')[0]))


查看完整回答
反对 回复 2021-08-24
  • 1 回答
  • 0 关注
  • 207 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号