Python中解决数据库读取数据为字符串类型的astype(np.float)转换方法
本文解析在Python中使用pymysql获取数据库数据时,因字段类型导致数据全部转为字符串的问题。通过示例展示如何利用numpy的astype(np.float)方法将字符串数组转换为浮点数,从而正确执行数学计算,避免类型错误。
数据库读取数据的类型问题
数据库的具体结构如下图所示。

该数据库的结构示意图。

从数据库中选取name、age和nr三个字段,并将其转换为数组。需要注意的是,只要所选取的数据中存在字符串类型,整个数组的所有元素都会被强制转换为字符串类型,无论数据库原始定义是否为整型。
这就带来了一个问题:当这些字符串类型的数据直接代入公式进行计算时,会因类型不匹配而报错。此时,就需要使用astype(np.float)函数进行类型转换。
使用astype进行类型转换
具体的实现代码如下。
import pymysql
import numpy as np
conn = pymysql.connect(host='39.106.168.84', user='xxxxxx', password='xxxxxx', port=3306,
db='flask_topvj_net')
cur = conn.cursor()
sql = "SELECT `name`, `age`,`nr` FROM `student` WHERE 1"
cur.execute(sql)
u = cur.fetchall()
u=np.array(u)
conn.close()
print(u)
#a=u[:,1]*5
#b=u[:,2]*5#错误示范
a=u[:,1].astype(np.float)*5
b=u[:,2].astype(np.float)*5
print(a)
print(b)
运行后的结果如下所示。

从结果可以看出,数组的第二列和第三列都成功乘以了5,计算过程无误。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













