工作中我们经常会从数据库中提取数据,处理之后,将结果整理为excel输出。本文主要介绍使用python的pandas工具从mysql数据获取数据,按要求处理之后,导出到excel文件。
安装依赖
首先确定已经安装PyMySQL,pandas,sqlalchemy,openpyxl包,本文会使用这几个包:
pip install PyMySQL
pip install pandas
pip install sqlalchemy
pip install openpyxl
程序代码
程序中先从mysql读取数据加载到pandas中,然后使用pandas处理数据,最后将处理后的数据导出到excel文件。
from sqlalchemy import create_engine
import pandas as pd
def get_sex(series):
val= ''
if pd.isna(series['sex']):
return val
if series['sex'] == '1':
val= '男'
elif series['sex'] == '0':
val= '女'
return val
# SQL 查询语句
sql = 'SELECT id, name, sex, age, birthday FROM user'
# 加载数据
engine = create_engine('mysql+pymysql://root:123456@127.0.0.1:3306/user')
df_read = pd.read_sql_query(sql, engine)
# 处理数据
# 将性别按照码表处理为中文
df_read['sex'] = df_read.apply(get_sex, axis=1)
# 将生日处理为时间格式 yyyyMMdd -> yyyy/MM/dd
df_read['birthday'] = df_read['birthday'].apply(lambda x : (x[0:4] + '/' + x[4:6] + '/' + x[6:8]) if len(x) == 8 else x)
# 将处理后的数据导出为excel
df_read.to_excel("F:\\user\\export\\user_001.xlsx", index=False)
总结
本文主要介绍如果使用pandas从mysql中获取数据,然后处理数据,最后导出数据的一个过程。程序代码比较简单,但是该类型的工作在我们的工作中是非常多的。如果掌握了该方法,将极大的提高我们工作的效率。