Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 尝试将csv文件的内容插入到不同的列表中_Python_Database_Csv_Neural Network - Fatal编程技术网

Python 尝试将csv文件的内容插入到不同的列表中

Python 尝试将csv文件的内容插入到不同的列表中,python,database,csv,neural-network,Python,Database,Csv,Neural Network,我正在尝试将csv文件的内容插入多个列表。为此,我去掉了csv的字符串。不幸的是,如果我试图插入索引为1或更高的行的内容,我总是会得到错误“列表索引超出范围”。对于索引0,它以某种方式起作用。 我检查了打印(akt)功能的输出。在这个基础上,它应该起作用。 我正在使用iris数据集。 编辑:可能是因为数据集的最后一行,不是吗?最后有一个空的列表,一开始我没有看到 import csv x1 = [] x2 = [] colors = [] with open("iris.csv" ,"r")

我正在尝试将csv文件的内容插入多个列表。为此,我去掉了csv的字符串。不幸的是,如果我试图插入索引为1或更高的行的内容,我总是会得到错误“列表索引超出范围”。对于索引0,它以某种方式起作用。 我检查了打印(akt)功能的输出。在这个基础上,它应该起作用。 我正在使用iris数据集。 编辑:可能是因为数据集的最后一行,不是吗?最后有一个空的列表,一开始我没有看到

import csv

x1 = []
x2 = []
colors = []

with open("iris.csv" ,"r") as csvfile:
    for line in csvfile:
        akt = line.strip().split(',')
        x1.append(akt[0])
        x2.append(akt[1])
        colors.append(akt[4])
        #print(akt)
    csvfile.close()

每当我处理csv文件时,我更喜欢使用
pandas

import pandas as pd

df = pd.read_csv("iris.csv")
columns = df.columns

x1 = df[columns[0]].tolist()
x2 = df[columns[1]].tolist()
colors  = df[columns[4]].tolist()

每当我处理csv文件时,我更喜欢使用
pandas

import pandas as pd

df = pd.read_csv("iris.csv")
columns = df.columns

x1 = df[columns[0]].tolist()
x2 = df[columns[1]].tolist()
colors  = df[columns[4]].tolist()

问题是一行中只有一列。您没有使用
print(akt)
捕获它,因为您只在异常之后打印当前行,因此不会看到失败的行

您需要检查输入并制定错误处理策略。下面是一个示例,我已经更新为使用csv模块,并在尝试使用该行之前检查该行是否正常。我不知道您的情况,所以我添加了案例来忽略一种类型的错误,但在另一种类型上引发异常

import csv

x1 = []
x2 = []
colors = []

with open("iris.csv" ,"r") as csvfile:
    reader = csv.reader(csvfile):
        for i, akt in enumerate(csvfile, 1):
            # debug
            # print(akt)
            # Your error policy here. As an example, I'm going to allow
            # empty lines but not miscounted columns
            if not akt:
                continue
            if len(akt) != 5:
                raise ValueError("Invalid column in iris.csv line {}".format(i))
            x1.append(akt[0])
            x2.append(akt[1])
            colors.append(akt[4])

问题是一行中只有一列。您没有使用
print(akt)
捕获它,因为您只在异常之后打印当前行,因此不会看到失败的行

您需要检查输入并制定错误处理策略。下面是一个示例,我已经更新为使用csv模块,并在尝试使用该行之前检查该行是否正常。我不知道您的情况,所以我添加了案例来忽略一种类型的错误,但在另一种类型上引发异常

import csv

x1 = []
x2 = []
colors = []

with open("iris.csv" ,"r") as csvfile:
    reader = csv.reader(csvfile):
        for i, akt in enumerate(csvfile, 1):
            # debug
            # print(akt)
            # Your error policy here. As an example, I'm going to allow
            # empty lines but not miscounted columns
            if not akt:
                continue
            if len(akt) != 5:
                raise ValueError("Invalid column in iris.csv line {}".format(i))
            x1.append(akt[0])
            x2.append(akt[1])
            colors.append(akt[4])

你说你试过打印(akt)-你能再做一次并公布结果吗?在拆分后立即打印,而不是在末尾。我们希望在错误发生时看到正确的值。我注意到您没有使用csv模块。我不认为这可以解释你的问题,但用它代替拆分可以解决其他问题,比如列中嵌入逗号。你说你尝试了
print(akt)
-你能再做一次并发布结果吗?在拆分后立即打印,而不是在末尾。我们希望在错误发生时看到正确的值。我注意到您没有使用csv模块。我不认为这能解释你的问题,但用它代替拆分可以解决其他问题,比如在列中嵌入逗号。是的,非常感谢。我很确定每个列表中都有一些内容,但最后有一个空列表。@znked-csv结尾的空行很常见。你撞到它并不奇怪。是的,非常感谢。我很确定每个列表中都有一些内容,但最后有一个空列表。@znked-csv结尾的空行很常见。你碰到它并不奇怪。