如何从具有空值的数据库创建numpy二维数组

四生子

我正在尝试使用可以通过列名称使用python访问的2d数组。数据来自数据库,并且可能具有不同的类型和空值。NoneType在元组中不允许使用,因此我尝试用np.nan替换它们。

如果数据库中没有空值,则这段代码有效。但是,我的最终目标是拥有一个蒙版数组,但是我什至无法创建一个数组。

import MySQLdb
import numpy

connection = MySQLdb.connect(host=server, user=user, passwd=password, db=db)
cursor = connection.cursor()
cursor.execute(query)
results = list(cursor.fetchall())

dt = [('cig', int), ('u_CIG', 'S10'), ('e_ICO', float), ('VCO', int)]

for index_r, row in enumerate(results):
    newrow = list(row)
    for index_c, col in enumerate(newrow):
        if col is None:
            newrow[index_c] = numpy.nan
    results[index_r] = tuple(newrow)
 x = numpy.array(results, dtype=dt)

产生的错误是:

x = numpy.array(results, dtype=dtypes)
ValueError: cannot convert float NaN to integer

执行fetchall之后,结果包含以下内容:

[(10L,
'*',
Decimal('3.47'),
180L),
(27L,
' ',
Decimal('7.21'),
None)]

关于如何解决此问题的任何想法?谢谢!

耶布拉斯科

以Larsmans为例,我想您想要的是:

    import numpy as np
    import numpy.ma as ma

    values = [('<', 2, 3.5, 'as', 6), (None, None, 6.888893, 'bb', 9),
              ('a', 66, 77, 'sdfasdf', 45)]
    nrows = len(values)

    arr = ma.zeros(nrows, dtype=[('c1', 'S1'),('c2', np.int), ('c3', np.float), 
                                 ('c4', 'S8'), ('c5', np.int)])

    for i, row in enumerate(values):
        for j, cell in enumerate(values[i]):
            if values[i][j] is None:
                arr.mask[i][j] = True
            else:
                arr.data[i][j] = cell

    print arr

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何创建具有大小的Swift空二维数组

来自分类Dev

laravel雄辩地创建数据库条目,但具有空值

来自分类Dev

Ruby on Rails API - 创建数据库对象仅返回具有空值的对象

来自分类Dev

如何比较数据库表中具有空值的列并显示不包含空值的列?

来自分类Dev

创建一个具有到中心的欧几里德距离的二维Numpy数组

来自分类Dev

具有二维数组的numpy.partition()

来自分类Dev

如何从json元素快速创建二维numpy数组?

来自分类Dev

如何为二维 NumPy 数组中的 nd 值创建掩码?

来自分类Dev

Python创建空的二维数组

来自分类Dev

通过推式创建具有其他数组中的值的数组,而无需创建二维数组(JavaScript)

来自分类Dev

如何在二维 numpy 数组中设置值?

来自分类Dev

如何创建具有二维数组并在相同位置添加元素的函数?

来自分类Dev

我如何创建具有列表复杂性的二维数组?

来自分类Dev

如何以有效的方式创建二维 numpy 数组的相应元素的元组

来自分类Dev

如何使用numpy或pandas生成具有Z值的二维网格(X,Y)?

来自分类Dev

PHP在提交表单之前将数据插入具有空值的数据库?

来自分类Dev

创建具有与数据库匹配的值的数组

来自分类Dev

如何更改二维数组中的所有值?

来自分类Dev

如何更新二维numpy数组?

来自分类Dev

如何生成二维numpy数组?

来自分类Dev

如何从二维数组创建html?

来自分类Dev

如何从二维数组创建html?

来自分类Dev

如何创建二维数组?

来自分类Dev

如何处理从angular发送到php的二维数组,以进行数据库查询

来自分类Dev

如何使用Numpy将值从一维数组插入二维数组

来自分类Dev

查询sqlite数据库并将所选数据存储到二维数组中

来自分类Dev

SQLite数据库中具有空对象的数据库

来自分类Dev

VB.NET错误使用数据库字段填充二维数组

来自分类Dev

Ruby on Rails:数据库中二维数组的正确语法

Related 相关文章

  1. 1

    如何创建具有大小的Swift空二维数组

  2. 2

    laravel雄辩地创建数据库条目,但具有空值

  3. 3

    Ruby on Rails API - 创建数据库对象仅返回具有空值的对象

  4. 4

    如何比较数据库表中具有空值的列并显示不包含空值的列?

  5. 5

    创建一个具有到中心的欧几里德距离的二维Numpy数组

  6. 6

    具有二维数组的numpy.partition()

  7. 7

    如何从json元素快速创建二维numpy数组?

  8. 8

    如何为二维 NumPy 数组中的 nd 值创建掩码?

  9. 9

    Python创建空的二维数组

  10. 10

    通过推式创建具有其他数组中的值的数组,而无需创建二维数组(JavaScript)

  11. 11

    如何在二维 numpy 数组中设置值?

  12. 12

    如何创建具有二维数组并在相同位置添加元素的函数?

  13. 13

    我如何创建具有列表复杂性的二维数组?

  14. 14

    如何以有效的方式创建二维 numpy 数组的相应元素的元组

  15. 15

    如何使用numpy或pandas生成具有Z值的二维网格(X,Y)?

  16. 16

    PHP在提交表单之前将数据插入具有空值的数据库?

  17. 17

    创建具有与数据库匹配的值的数组

  18. 18

    如何更改二维数组中的所有值?

  19. 19

    如何更新二维numpy数组?

  20. 20

    如何生成二维numpy数组?

  21. 21

    如何从二维数组创建html?

  22. 22

    如何从二维数组创建html?

  23. 23

    如何创建二维数组?

  24. 24

    如何处理从angular发送到php的二维数组,以进行数据库查询

  25. 25

    如何使用Numpy将值从一维数组插入二维数组

  26. 26

    查询sqlite数据库并将所选数据存储到二维数组中

  27. 27

    SQLite数据库中具有空对象的数据库

  28. 28

    VB.NET错误使用数据库字段填充二维数组

  29. 29

    Ruby on Rails:数据库中二维数组的正确语法

热门标签

归档