从csv文件中的行添加空数组以进行绘图?

时间:2017-12-12 20:32:30

标签: python arrays csv matplotlib append

我刚开始使用python,请原谅我,如果我是愚蠢的。然而,当我碰到这个时,我正在四处绘制两个不同的阵列:

  

追踪(最近的呼叫最后):
   name = row [0]文件

     

" C:/ Users / me_irl / PycharmProjects / untitled / lo",第10行,

     

IndexError:列表索引超出范围

现在,我已经在网上寻找解决方案但是在尝试了pandas,genfromtxt()和其他模块之后,我还没有找到解决方案。

这是我的代码,尽管不完整,仅供参考:

import numpy as np
import matplotlib.pyplot as plt
import csv
import scipy
player_name = []
player_picks = []
with open('C:\exercise.csv') as csvfile:
    readCSV = csv.reader(csvfile, delimiter= ',')
    for row in readCSV:
        name = row[0]
        picks = row[1]

        player_name.append(name)
        player_picks.append(picks)

print(player_name)

这是csv的一部分:

  

萨拉赫,94%

     

莫拉塔,66%

     

埃利奥特,64%

     

凯恩,58%

     

危险,52%

     

de Gea,50%

我该怎么办?有人可以给我一个简单的解决方法,并不需要使用我还没有学到的东西吗?

编辑:想出来。它在访问csv时遇到了一些问题。不,没有任何空白行。现在,尝试绘制player_names与player_picks。谢谢大家,谁回复了。学到了很多东西。

2 个答案:

答案 0 :(得分:2)

您没有考虑文件中的空行。添加一项检查以查看该行是否包含内容:

import numpy as np
import matplotlib.pyplot as plt
import csv
import scipy
player_name = []
player_picks = []
with open('C:\exercise.csv') as csvfile:
    readCSV = csv.reader(csvfile, delimiter= ',')
    for row in readCSV:
        if len(row) >= 2:
            name = row[0]
            picks = row[1]

            player_name.append(name)
            player_picks.append(picks)

print(player_name)

答案 1 :(得分:0)

问题来自陈述

name = row[0]
picks = row[1]

在这些行中,您尝试访问CSV行的第0和第1项。如果它没有至少2个项目,则会提示错误IndexError: list index out of range