繁体   English   中英

试图从 CSV 文件中读取数据,列表索引超出范围?

[英]Trying to read in data from a CSV file, list index out of range?

我不知道为什么这不起作用,我以前用 CSV 文件做过这个并且它起作用了。 该文件没有空行或空值,数据以逗号分隔。 这就是我所拥有的:

#Create empty lists for data.
Date = []
Open = []
High = []
Low = []
Close = []
Adj_Close = []
Volume = []

#Fill lists with data.
with open("AAPL_train.csv", "r") as infile:
    for lines in infile:
        lines = lines.split(",")
        Date.append(lines[0])
        Open.append(lines[1])
        High.append(lines[2])
        Low.append(lines[3])
        Close.append(lines[4])
        Adj_Close.append(lines[5])
        Volume.append(lines[6])

我的错误代码显示它在Open.append(lines[1])行中超出索引。

然后这里是一个数据样本,向您展示它的样子。

有任何想法吗? 谢谢你。

编辑添加:我得到的错误是 IndexError: list index out of range on line 18,当我尝试在每个循环之后执行打印行时,除了错误之外什么也没有。

import csv

#Create empty lists for data.
Date = []
Open = []
High = []
Low = []
Close = []
Adj_Close = []
Volume = []

#Fill lists with data.
with open("AAPL_train.csv", "r") as infile:
    csv_reader = csv.reader(infile, delimiter=','):
        # skip header
        next(csv_reader)
        for row in infile:
            Date.append(row[0])
            Open.append(row[1])
            High.append(row[2])
            Low.append(row[3])
            Close.append(row[4])
            Adj_Close.append(row[5])
            Volume.append(row[6])

我已更新您的代码以使用内置的 python csv package。 在处理 CSV 时,它让生活更轻松,它的生成器应该有助于防止任何 memory 问题!

我还添加了next(csv_reader)调用以跳过 csv 数据中的 header。 我假设这是您可能实际上不想记录的数据。

尝试使用 pandas:

import pandas as pd

df = pd.read_csv(AAPL_train.csv)

Date = df['Date'].tolist()
Open = df['Open'].tolist()
High = df['High'].tolist()
Low = df['Low'].tolist()
Close = df['Close'].tolist()
Adj_Close = df['Adj_Close'].tolist()
Volume = df['Volume'].tolist()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM