我正在嘗試從 csv 中繪制日期和價格。但是,該dates.append()函數(shù)向我拋出了錯誤。我能做些什么來解決這個問題?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條經(jīng)驗 獲得超4個贊
一旦你split是一個字符串,你就會返回一個列表,錯誤發(fā)生在這里:
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]))
添加回答
舉報
0/150
提交
取消