我试图根据以下条件从下表中找到平均小时数:
如果年龄介于20至30岁之间且mime > 0.40
和hr > 100
到目前为止我得到的代码......
import csv as csv
import numpy as np
csv_file_object = csv.reader(open('test.csv', 'rb'))
header = csv_file_object.next()
data=[]
for row in csv_file_object:
data.append(row)
data = np.array(data)
hr = data[0::,0].astype(np.float)
mime = data[0::,1].astype(np.float)
age = float(input("Enter your age (in years): "))
if age > 19 and age < 31:
i = 0
for row in hr:
if mime.all() > 0.4 and hr.all() > 100:
hr = hr + i
avghr = hr / len(hr)
print avghr
else:
print ('Age not in range')
我得到的结果:
Enter your age (in years): 25
[ 7.14285714 7.21428571 7.28571429 7.35714286 7.42857143 7.5
6.42857143 5.17357143 5.21428571 7.85714286 8.57142857 9.28571429
5.15642857 5.19142857]
我的test.csv文件:
hr, mime
100, 0.41
101, 0.19
102, 0.18
103, 0.6
104, 0.45
105, 0.7
90, 0.4
72.43, 0.17
73, 0.17
110, 0.5
120, 1
130, 2
72.19, 0.5
72.68, 0.5
我的avghr应该是110,但我不在这附近。如果有人可以帮助,那将是值得赞赏的。
答案 0 :(得分:0)
为什么使用
hr = hr + i
hr似乎是一个列表,这使得avghr = hr / len(hr)也成为一个列表。
您可以尝试以下方式:
avghr = 0
for raw in hr:
avehr += raw
avghr /= len(hr)
希望它有所帮助。