使用pandas模块连接mysql数据库查询多条sql语句并将循环查询的sql结果写入excel文件中的不同sheet页(自动化办公)

使用pandas模块连接mysql数据库查询多条sql语句并将循环查询的sql结果写入excel文件中的不同sheet页(自动化办公),第1张

使用pandas模块连接mysql数据库查询多条sql语句并将循环查询的sql结果写入excel文件中的不同sheet页(自动化办公)

文章目录
  • 一、前言
  • 二、pandas是什么?
  • 三、使用步骤
    • 1.引入库
    • 2.读入数据
  • 四、代码


一、前言

继上次的更新有三个月了,这次带来了最新的mysql查询并写入excel表格不同sheet页的方法,也算是自我的一个提高总结,同时也希望能够帮助有需要的人,如有大牛,请多多指正。
1.old:上次写的是通过pymysql连接数据库,结果写入变量列表,之后再依次读取写入表格中;
2.new:最新的sql通过pandas.read_sql方法读取查询结果,并直接写入表格的不同sheet页面,相比之前的方法效率提高了很多。

二、pandas是什么?

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

三、使用步骤 1.引入库

代码如下(示例):

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
import  ssl
ssl._create_default_https_context = ssl._create_unverified_context
2.读入数据

代码如下(示例):

data = pd.read_csv(
    'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')
print(data.head())

该处使用的url网络请求的数据。


总结

以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

四、代码
#导入所需的模块
import pandas as pd
from pandas.io import sql
import pymysql,os
#配置数据库连接(数据库信息填写自己的)
conn =  pymysql.connect(
    host = '192.168.11.93',
    user = 'root',
    passwd = '*********',
    port = 3306,
    db = 'manage',
    charset = 'utf8'
)
#定义查询sql文件的路径(==文本中的多组sql以“;”进行分割,最后一组不要“;”,否则切割出来的sql会有空白sql,执行会报错!!!==)
sqls_file=(r'C:UsersSkylerDesktopsqls.txt')
#由于查询结果是多个,所以提前通过变量设置不同sheet页面的名称
sheet_names=['baseinfo','grade']
#定义读取sql方法返回sql语句
def sqls(sqls_file):
    global sqlstrs
    with open(sqls_file,'r',encoding='utf-8') as f:
        sqlstrs=f.read().split(';')
# 定义数据查询方法
def quert_method(sql_str):
    global df   #设置为全局变量
    df = pd.read_sql(sql_str,con = conn)
# 定义并自动执行主程序
if __name__ == '__main__':
    sqls(sqls_file)
    with pd.ExcelWriter('学生信息表.xlsx') as writer:
        for i in range(0,len(sqlstrs)):
            quert_method(sqlstrs[i])
            df.to_excel(writer, sheet_name=sheet_names[i], index=False, header=True)

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/4667225.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-07
下一篇2022-11-06

发表评论

登录后才能评论

评论列表(0条)

    保存