1、导包
import pandas as pd import pymysql from sqlalchemy import create_engine将连接数据库并读取数据的代码封装成一个方法
# 将连接数据库并读取数据的代码封装成一个方法 def reader(query, db, charset): sql = query engine = create_engine('mysql+pymysql://root:root@localhost:3306/{0}?charset={1}'.format(db, charset)) df = pd.read_sql(sql, engine) return df调用方法
# 调用方法 sql = "select * from company_sql_csv" df_company = reader(sql, 'qinlu', 'utf8') df_company还可以查看数据库qinlu中的有哪些表
# 还可以查看数据库qinlu中的有哪些表 reader('show tables', 'qinlu', 'utf8')现在,获取另一张表df_dataanalysis
df_dataanalysis = reader('select * from dataanalyst_sql_csv', 'qinlu', 'utf8') df_dataanalysis现在可以对这两张表做一些简单的操作啦(df_company 和 df_dataanalysis)
# 现在可以对这两张表做一些简单的操作啦(df_company 和 df_dataanalysis) # 每个城市下不同公司的职位数量 # 先合并两张表 merged = pd.merge(df_dataanalysis, df_company, on='companyId') merged result = merged.groupby(['city', 'companyFullName']).count()['positionId'].reset_index() result.head()将刚才查询出来的表结果写入到数据库中(注意:在写入数据库前,先在数据库中建好表,否则写入的字段类型不是自己想要的)
# 将刚才查询出来的表结果写入到数据库中 result.to_sql(name='test_pandas', con='mysql+pymysql://root:root@localhost:3306/qinlu?charset=utf8', if_exists='append', index=False)