0

コードにエラーが発生し続けます。エラーを修正しようとしましたが、まだ機能しません。もう一度質問を説明してみます。ファイルを開いて読み取るコードを取得しました。

データはエクセルファイルです。

amount (A1)
5.21 (A2)
4.63 (A3)
5.24 (A4)
3.62 (A5)
1.98 (A6)
16.47 (A7)
1.31 (A8)
1.85 (A9)
4.26 (A10)
0.98 (A11)
1.84 (A12)
0.51 (A13) 
15.58 (A14)
2.64 (A15)
4.32 (A16)
0.59 (A17)
0.21 (A18)
5.41 (A19)
0.08 (A20)
4.34 (A21) 

やってみた

file=open ('3109336a.csv','r')

count = 0

with open('3109336a.csv', 'r') as f:
  values = f.readlines()

  for value in values:
    if float(value) >= 9.79:
      count += 1

print (count)

私が取得し続けるエラーは次のとおりです。

Traceback (most recent call last):
  File "C:\Users\XXXX\Desktop\XXXXX\XXXX\studfiles\XXXXX\testing.py", line 9, in <module>
    if float(value) >= 9.79:
ValueError: could not convert string to float: 'amount, code, quant, val, number, tree\n'

質問は:

フィールド [amount] 以上の値の数を数えます ( 9.79)

4

1 に答える 1

5

CSV ファイルがある場合は、適切なツールを使用して読み取ります。csvモジュールを使用します:

import csv

with open('3109336a.csv', 'r', newline='') as f:
    reader = csv.reader(f)
    next(reader)  # skip the first row, it only contains headers.
    count = 0
    for row in reader:
        # row is now a *list* of columns.
        # I'll assume the *first* column is your value:
        amount = float(row[0])
        if amount >= 9.79:
            count += 1

    print(count)

これは次のように簡略化できます。

with open('3109336a.csv', 'r', newline='') as f:
    reader = csv.reader(f)
    next(reader)  # skip the first row, it only contains headers.
    count = sum(1 for row in reader if float(row[0]) >= 9.79)

print(count)
于 2013-03-15T20:51:48.127 に答える