Python计算平均值

时间:2014-11-28 04:04:39

标签: python

我试图根据以下条件从下表中找到平均小时数:
如果年龄介于20至30岁之间且mime > 0.40hr > 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,但我不在这附近。如果有人可以帮助,那将是值得赞赏的。

1 个答案:

答案 0 :(得分:0)

为什么使用

 hr = hr + i

hr似乎是一个列表,这使得avghr = hr / len(hr)也成为一个列表。

您可以尝试以下方式:

avghr = 0
for raw in hr:
    avehr += raw
avghr /= len(hr)

希望它有所帮助。

相关问题