我正在做一个股票价格预测模型,我得到了一个1年的历史价格作为一个“数据库”。当我运行代码时,我得到了一个超出范围的列表索引,尝试使用行和列选择,但它没有工作
def get_data(IndFut):
with open('IndFut.csv','r') as csvfile:
csvFileReader = csv.reader(csvfile)
next(csvFileReader)
for row in csvFileReader:
dates.append(int(row[0].split('/')[0]))
prices.append(float(row[1]))这是数据
Day Close Open High Low Volume
11/01/2018 79830 78590 79845 78555
10/01/2018 78638 78850 79025 78510 57030
09/01/2018 79242 79750 79925 79100 67500
08/01/2018 79829 79730 79915 79055 57270出现以下错误:
prices.append(float(row[1]))
IndexError: list index out of range我该怎么做?
发布于 2018-01-12 20:55:44
我认为你需要分割每一行来消除分号。
rows = [['11/01/2018;79830;78590;79845;78555;;']]
dates = []
prices = []
for row in rows:
row = ''.join(rows[0]).split(';')
dates.append(int(row[0].split('/')[0]))
prices.append(float(row[1]))
print(dates)
# [11]
print(prices)
# [79830.0]重写该功能:
def get_data(IndFut):
with open(IndFut,'r') as csvfile:
csvFileReader = csv.reader(csvfile)
next(csvFileReader)
for row in csvFileReader:
row = ''.join(rows[0]).split(';')
dates.append(int(row[0].split('/')[0]))
prices.append(float(row[1]))发布于 2018-01-12 21:14:19
我怀疑您的数据是制表符分隔的,因此您需要这样指示,并且可能需要删除空格。
def get_data(IndFut):
with open('IndFut.csv','r') as csvfile:
csvFileReader = csv.reader(csvfile, delimiter='\t')
next(csvFileReader)
for row in csvFileReader:
try:
dates.append(int(row[0].split('/')[0]))
prices.append(float(row[1]))
except:
print(f"failed to process row {row}")编辑不确定我是否理解why...but,试试这个;
def get_data(IndFut):
with open('IndFut.csv','r') as csvfile:
csvFileReader = csv.reader(csvfile, delimiter='\t')
next(csvFileReader)
for row in csvFileReader:
split_row = row[0].split(';')[:-1]
try:
dates.append(int(split_row[0].split('/')[0]))
prices.append(float(split_row[1]))
except:
print(f"failed to process row {split_row}")https://stackoverflow.com/questions/48233692
复制相似问题