python连接MySQL数据库并对数据类型进行转换

本文利用pymysql模块连接MySQL数据库,并汇总查询所需数据,同时对数据进行类型转换。

# -*- conding:utf-8 -*-

import pymysql
def mysql_func(sql):
	db = pymysql.connect(host="110.109.200.***",port=3306, user="lilei",passwd= "lileicode",database="mydatabase")
	# 使用 cursor() 方法创建一个游标对象 cursor
	cursor = db.cursor()
	# 使用预处理语句创建表
	cursor.execute(sql)
	result_value = cursor.fetchall()
	result_names = cursor.description
	tt = pd.DataFrame()
	# 循环每一天的数据
	for ii in range(len(result_value)):
		# 循环每天的每个变量
		for j in range(len(result_value[ii])):
			j_name = result_names[j][0]
			tt.loc[ii, j_name] = result_value[ii][j]
			# 特殊字段不进行处理,数值型的字段判断是否是浮点,否则是int
			try:
				if j_name not in ['date','cus_type','channel']:
					if str(result_value[ii][j]).find('.')>0:
						tt[j_name] = tt[j_name].astype(np.float)
					else:
						tt[j_name] = tt[j_name].astype(np.int)
			except Exception as ExceptionError:
				print('mysql_func',ExceptionError)
				pass
	db.close()
	return tt
	
if __name__ == '__main__':
	sql = 'select 
				date,
				cus_type,
				channel,
				count(*) cnt,
				sum(if(cus_type='old',1,0)) old_cnt,
				sum(if(cus_type='old',1,0))/count(*) old_pct
			from orderdata 
			groupby date,cus_type,channel limit 10'
	mysql_func(sql)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值