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 に答える