安装
pip install SQLAlchemy
import pymysql
import pandas as pd
from sqlalchemy import create_engine
sql = 'select * from company_sql'
con = create_engine('mysql+pymysql://root:root@localhost:3306/demo?charset=utf8')
df = pd.read_sql(sql, con)
查询
# 使用数据库的查询
sql = 'select * from company_sql where companySize = "50-150人" '
# 直接使用pandas
df[df['companySize'] == '50-150人']
# 两种方式都是可行的,主要看性能
实战进阶
对连接数据库的方式做一个简单的优化
def read(sql):
# 每次调用方法就可以快速的操作各个表
con = create_engine('mysql+pymysql://root:root@localhost:3306/demo?charset=utf8')
df = pd.read_sql(sql, con)
return df
合并
company_id = read('select * from company_sql')
company = read('select * from dataanalyst_sql')
company_all = pd.merge(company, company_id, on='companyId')
company_all
分组的使用
c = company_all.groupby(['city', 'companyFullName']).count()['positionId']
#使用 .reset_index()
c.head()
查看数据类型
c.info()
c.dtypes
保存到数据库
# name: 数据库名称,可以是存在的,也可以是不存在的
# if_exists:存在就加入,不存在就创建新的
# index:False不要把索引加入数据库中
c.to_sql(name="new_table",
con='mysql+pymysql://root:root@localhost:3306/demo?charset=utf8',
if_exists='append', index=False)
问题补充:最后你可能发现,数据库中字段的类型是这样的
image.png
并不是我们想要的形式,所以如果你比较追求完美的话,建议先把表,字段建好!!!!!
网友评论