在Python中从sqlite3计算数据列表的平均值

3

我正在尝试制作一个程序,从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)

我收到了以下错误信息: average = (sum(age_list))/len(age_list) TypeError: unsupported operand type(s) for +: 'int' and 'str'
我该如何更正提取数据的方式,以便能够计算平均值?
1个回答

2

执行这个操作

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

列表默认为字符串,如果你需要对它们进行数学运算,就需要将其声明为整数,这样它就知道你想让它们成为数字。


1
啊,谢谢!现在我遇到了一个问题,有些数据没有年龄,而是“NA”,所以现在我得到了这个错误:age_list = [int(a[0]) for a in ages_iterator] ValueError: invalid literal for int() with base 10: 'NA'。我通过只提取不等于NA的年龄来纠正了这个问题。感谢您的帮助。 - Jessica Smith

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接