我有一个CSV文件,我用于绘制图表。 我想从csv文件中删除第一行和最后一列,因为第一行包含命名,最后一行包含空格。 删除第一行和最后一行后,程序已正常工作。如何删除此提取文件中的行。我需要做什么来自动运行
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 :(得分:0)
要摆脱第一行,您可以使用csv.DictReader,这也可以让您通过名称而不是索引来获取值,从而使代码更具可读性。对于最后一行,这样的事情会起作用:
for line in [line for line in reader][:-1]:
...但是这会立即将整个文件读入内存以创建列表。由于您已经重新分配了值,因此只需对
进行简单的更改即可x=TS[:-1]
z=ACT_ANGLE[:-1]
y=DES_ANGLE[:-1]
应该这样做,
x=TS[1:][:-1]
z=ACT_ANGLE[1:][:-1]
y=DES_ANGLE[1:][:-1]
如果你不想使用dictreader,也会删除第一行。但是,这导致了比第一种方法更多的代码重复。