2017-12-12 15 views
-1

방금 ​​파이썬을 사용하기 시작 했으므로 실례합니다. 나에게 판다, 미지 genfromtxt()와 다른 모듈을, 내가 솔루션을 찾고 웹을 흐르고있는 지금CSV 파일의 행에서 플로팅에 빈 배열을 추가 하시겠습니까?

Traceback (most recent call last):
name = row[0] File

"C:/Users/me_irl/PycharmProjects/untitled/lo", line 10, in

IndexError: list index out of range

을하지만 이후 시도 : 그러나, 나는이로 실행했을 때, 두 개의 서로 다른 배열을 플롯으로 주위를 연주했다 , 나는 해결책을 찾지 못했다. 여기

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로의 부분 :

여기 내 코드는 참조 용으로 불완전이기는하지만,이다

Salah,94%

Morata,66%

Elliot,64%

Kane,58%

Hazard,52%

de Gea,50%

어떻게해야합니까? 누군가 내가 배운 적이없는 것들을 사용하지 않는 쉬운 해결 방법을 제시 할 수 있습니까?

편집 : 알아 냈습니다. csv에 액세스 할 때 몇 가지 문제가있었습니다. 아니, 빈 줄이 없었어. 이제는 player_names와 player_picks를 구상하려고합니다. 대답 해 주신 모든 분들께 감사드립니다. 많이 배웠습니다.

+1

csv 파일을 붙여 넣은 것과 정확하게 일치하는 경우 파일의 빈 줄을 고려해야합니다. – chrisz

+0

아마도 csv 파일에 빈 줄이 있습니다. –

답변

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) 
+0

'if row'가 충분하지 않을 수 있습니다. 'len (row)> = 2'을해야 할 수도 있습니다. – roganjosh

+0

@roganjosh 좋은 지적입니다. 업데이트 된 – chrisz

+0

은 원시 접두사없이 백 슬래시와 함께 전체 경로를 사용하지 않습니다. –

0

문제 발생을 문 당신이 항목을 0과 CSV 행의 1에 액세스하려고 그 라인에서

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

에서. 적어도 2 개의 항목이 없으면 오류 IndexError: list index out of range이 프롬프트됩니다.

+0

이것은 실제로 제가 고심하고있는 것에 가장 가깝습니다. 이후 csv에 대한 액세스가 중지되었습니다. 액세스 할 파일이 없으므로 행이 부족하다는 것을 설명합니다. –