2016-07-12 13 views
2

このコードは、データの列数のすべての行を繰り返し処理したい場合にのみ、行数を反復処理しますが、理由がわからないのは混乱しています。行は7回。PythonネストForループのCSVファイル

import csv 
from mpl_toolkits.mplot3d import axes3d 
import matplotlib.pyplot as plt 
import numpy as np 

sensorData  = [] 
longitudinal = [] 
transverse  = [] 

n=0 
with open('test3.csv') as csvfile: 
    readCsv = csv.reader(csvfile, delimiter =',') 
    for x in range(0,7): #problem HERE 
     for row in readCsv: 
      n+=1 
      sensorData.append(float(row[x])) 

      longitudinal.append(n) 

      transverse.append(x) 
+0

csvファイルにはどのようなデータがありますか?行には7つの項目がありますか? – lafferc

+0

はいcsvには特定の数の列が含まれています。正確には – JabbaJava

+0

です。forループの順序が間違っています。各行の列をループする代わりに、CSVファイル全体を7回読み取ろうとしています – kdopen

答えて

0

同様の質問:ファイルを使用して、あなたのループの後Reading from CSVs in Python repeatedly?

、あなたがたcsvfileの読み取り位置をリセットする必要があります。

csvfile.seek(0) 
+0

ありがとう!外側のforループの最後にこの行を追加した後、それは期待どおりに機能しました。 – JabbaJava

+0

問題はありません、upvoteに感謝します! –

+0

私はこれを100%upvoteしたいと思いますが、私はupvoteに必要な評判(15)はありません... – JabbaJava

1

コードには7回ループする外側ループがあり、内側ループは各行にループします。内側ループと外側ループを交換する必要があります。各列

with open('test3.csv') as csvfile: 
    readCsv = csv.reader(csvfile, delimiter =',') 
    for row in readCsv: 
     for x in range(0,7): 
      n+=1 
      sensorData.append(float(row[x])) 
+1

元のコードが間違っている理由のいくつかの説明は良い(はい、それは私たちには明らかですが、彼らには明らかかどうか尋ねなかったでしょう) – kdopen

0

オーバー各行ループの

あなたはファイル内のすべての行を読んでたら、ファイルデータが消耗していると読むことを左、ので、あなたのfor row in readCsv:ループはすぐに終了しても何もありません。

ファイルをリセットしてもう一度読みたい場合は、ファイルを閉じてもう一度開く必要があります。ここ

関連する問題