時間データと数値を含むcsvファイルがたくさんあります。この方法で、しきい値(x)を下回る数値の最初の出現を返す関数を作成しました:
def bounce(tickList,x):
n = 0
for i in tickList:
if float(i[1]) < x:
return n
break
n += 1
この方法でバウンス関数の実行をループする場合を除いて:
for i in os.listdir(resultDir):
if "csv" in i:
csvFile = resultDir+i
print csvFile
with open(csvFile, 'rb') as f:
reader = csv.reader(f)
tickList = []
for line in reader:
tickList.append(line)
print bounce(tickList,5)
最初の値がしきい値を超えていても、ゼロを返し続けます。
どこが間違っていますか?
csv ファイルの 1 つのサンプルを次に示します。
1373289767.454535,9.9
1373289769.728528,9.9
1373289771.817576,9.9
1373289773.813036,11.7
1373289775.810985,11.7
1373289777.769641,11.7
1373289779.783134,12.2
1373289781.774255,11.8
1373289783.799892,12.0
1373289785.812967,11.4
1373289787.816991,11.4
1373289789.790835,11.3
1373289791.811245,10.9
1373289793.880356,10.8
1373289795.846866,10.7
1373289797.847552,10.6
1373289799.858929,10.6
前もって感謝します 。
コメントの後に編集
新しい関数は次のとおりです。
def bounce(tickList,x):
n = 0
for i in tickList:
if float(i[1]) < x:
return n
n += 1
float(i[1])を出力すると、正しい数値が返されるため、正しいファイルが呼び出されます。
2回目の編集
問題が見つかりました。私が与えていた「レベル」は、実際にはintではなくstrでした。見て助けてくれたみんなに感謝します。