是否有任何对象不是浮点数但可以在MySQL中作为浮点数接受?

时间:2014-02-27 17:00:54

标签: python mysql matplotlib

我正在使用一些实验结果构建一个Mysql数据库。通常,我想写入表中的值是float,但有时它们不是。就像:

         exp1    exp2    exp3    exp4

gene1       0     1.2     1.3     N/A
gene2     2.2     2.0     3.3     1.9
gene3     N/A     5.5     5.2     6.9

由于某些原因,实验的值不可用,并且不是0.我希望存储这些值的列的类型是浮点数,但它失败了,因为存在'N / A'。

当然我可以使用Varchar但是当我使用python检索一些值并想要使用matplotlib.pyplot绘制图形时,又出现了一个问题,它再次失败,因为这些'N / A'字符串不能被转换为浮动。

请帮帮我。

感谢。

2 个答案:

答案 0 :(得分:2)

为什么你不能列NULL列? NULL没有任何价值,所有编程语言都会优雅地处理它。

答案 1 :(得分:0)

使用select进行检索时,您可以对列应用cast以返回数值。

mysql> select cast( 'n/a' as decimal ) na_to_num;
+-----------+
| na_to_num |
+-----------+
|         0 |
+-----------+

其他替代方法是在值不可用时插入NULL。但是您无法将NULL转换为数值。您需要明确检查NULL并在其上返回0

mysql> select cast( ifnull(null,0) as decimal ) as null_to_num;
+-------------+
| null_to_num |
+-------------+
|           0 |
+-------------+