2

我有一个 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")
4

1 回答 1

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,也会删除第一行。但是,与第一种方法相比,这会导致更多的代码重复。

于 2013-03-19T09:49:23.530 回答