2016-11-16 36 views
3

我想做一个程序,从sqlite3中拉出一列数据,并用它来计算不同的东西(平均值,stdv等) 这就是我所拥有的远和问题我运行到:在python中计算来自sqlite3的数据列表的平均值

from math import * 
import sqlite3 
conn = sqlite3.connect('personinfo.sqlite3') 

def main(): 
    ages_iterator = conn.execute("SELECT age from person") 
    age_list = [a[0] for a in ages_iterator] 

    # average age 
    average = (sum(age_list))/len(age_list) 

我收到以下错误: 平均=(SUM(age_list))/ LEN(age_list) 类型错误:不支持的操作数类型(一个或多个)为+:' int'and'str'

我该如何纠正我提取数据的方式,以便从中计算出平均值?

回答

2

做到这一点

age_list = [int(a[0]) for a in ages_iterator] 

列表被默认为字符串,它落在了你在做数学运算与他们,由他们宣布为整数,然后它知道你想他们是数字。

+1

啊谢谢你!然而,我现在有一些问题,我的一些数据没有列出年龄,但是现在我得到这个错误:age_list = [int(a [0])in age_iterator] ValueError:无效文字对于基数为10的int():'NA'我可以通过在不等于NA的情况下拉长年龄来解决这个问题。感谢您的帮助 –