如何从数据库数据中取平均值? TypeError: 不支持的操作数类型 /: 'Decimal' 和 'float'

Posted

技术标签:

【中文标题】如何从数据库数据中取平均值? TypeError: 不支持的操作数类型 /: \'Decimal\' 和 \'float\'【英文标题】:How to make an average from DB data? TypeError: unsupported operand type(s) for /: 'Decimal' and 'float'如何从数据库数据中取平均值? TypeError: 不支持的操作数类型 /: 'Decimal' 和 'float' 【发布时间】:2014-03-08 10:42:09 【问题描述】:

我正在遍历从 mysql 数据库返回的一些数据。我无法控制数据库中的数据格式(或与数据相关的任何其他内容)。

我想创建返回值的平均值。在 Python 中打印 DB 行时的值如下所示:

('username', Decimal('8.4600'), Decimal('10.4300'), Decimal('9.48600000'), Decimal('1.9700'), 5L)

我的代码基本上就是这样的:

import numpy
#make a list in a loop from the DB data rows
avg = numpy.mean(list)

我的错误是:

TypeError: /: 'Decimal' 和 'float' 的操作数类型不受支持

显然,我需要转换类型。我更愿意将 DB Decimal 类型转换为常见的 Python 类型(例如 float)。我不是在用钱工作;这些数字适当地表示为浮点数。

处理这个问题的最佳方法是什么?

【问题讨论】:

【参考方案1】:

您可以在循环期间将所有内容转换为浮点数,也可以使用列表推导来执行此操作。 float(Decimal('10.4300')) 有效。如果你可以控制你的查询,我不明白为什么你不能在那里平均它。

【讨论】:

以上是关于如何从数据库数据中取平均值? TypeError: 不支持的操作数类型 /: 'Decimal' 和 'float'的主要内容,如果未能解决你的问题,请参考以下文章

R脚本每<x>天取平均值

如何获取在CoreData中取平均值的Entity属性

python删除异常值,过滤并取平均值

如何根据 R 中的条件对多列取平均值?

我试图取平均值的对象未找到

oracle 取平均值