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)