簡體   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