2013-03-19 6 views
2

CSV 파일이 있습니다. 그래프를 그릴 때 사용하고 있습니다. 첫 번째 행에 이름이 있고 마지막 행에 공백이 포함되어 있기 때문에 CSV 파일에서 첫 번째 행과 마지막 열을 제거하고 싶습니다. 첫 번째 행과 마지막 행을 제거하면 프로그램이 제대로 작동합니다.이 추출 된 파일에서 행을 제거 할 수 있습니다. 보정 내가 당신에 의해 값을 얻을 수 있도록하여도 코드를 읽기 쉽게 만들 것이다, 대신 csv.DictReader을 사용할 수,파이썬에서 첫 번째 행과 마지막 행 요소 남기기

import csv 
import matplotlib.pyplot as plt 

plt.figure() 

file =open("graph.csv","r+") 
reader = csv.reader(file) 
TS=[] 
TIME=[] 
ACT_ANGLE=[] 
DES_ANGLE=[] 
for line in reader: 

     TS.append(line[12]) 
     TIME.append(line[5]) 
     ACT_ANGLE.append(line[7]) 
     DES_ANGLE.append(line[6]) 

x=TS 
z=ACT_ANGLE 
#print x 
y=DES_ANGLE 


plt.plot(x,y) 
plt.xlabel('Time in Sec') 
plt.ylabel('Actual angle in degree') 
plt.show() 
plt.savefig("example.png") 

답변

0

는 첫 번째 행을 제거하기 위해 자동으로 실행하기 위해 필요한 무엇인가 대신 색인을 사용하십시오.

for line in [line for line in reader][:-1]: 

을 ...하지만 그 목록을 만들기 위해 한 번에 전체 파일을 메모리로 읽어 것 : 마지막 행의 경우,이 같은 뭔가가 작동합니다. 이미

에 값, 간단한 변화를 다시 지정하기 때문에
x=TS[:-1] 
z=ACT_ANGLE[:-1] 
y=DES_ANGLE[:-1] 

은 어떻게해야하고 dictreader을 사용하지 않으려면

x=TS[1:][:-1] 
z=ACT_ANGLE[1:][:-1] 
y=DES_ANGLE[1:][:-1] 

뿐만 아니라 첫 번째 행을 제거합니다. 하지만 첫 번째 방법보다 코드 복제가 더 많이 발생합니다.

관련 문제