使用pandas的dataframe映射mysql中的表进行操作
pip install pymysql
1、pandas直接读取mysql数据
import pandas as pd
import pymysql
conn = pymysql.connect(user='root',password='123456',database='shujiaku',host='master',port=3306)
cursor = conn.cursor() #获取一个游标
cursor.execute('select * from student')
for stu in cursor.fetchall(): #获取数据
print(stu)
stuDF = pd.read_sql('select * from student',con = conn) #读取数据成dataframe格式
2、数据分析
stuDF.sort_values('age') #默认升序
stuDF.sort_values('age',ascending=False) #降序
stuDF.groupby('clazz')['id'].count().reset_index().rename(columns={
"id":'cnt'}) #分组,重置索引(要不然clazz就是索引)
stuDF.groupby(['clazz','gender'])['age'].agg(max).reset_index() #可以使用agg函数直接传入
关联表
scoreDF = pd.read_sql('select * from score',con=conn) #导入score表
sumDF = scoreDF.groupby('student_id')['score'].sum().reset_index() #分组求和
stuDF.merge(sumDF,left_on='id',right_on='student_id',how='inner') #关联表
3、seaborn画图
下载 pip install seaborn
每个班级人数画图,matplotlib存在为了设置参数
import seaborn as sns #导包
import matplotlib.pyplot as plt #导包
plt.figure(figsize=(12, 14))
plt.title("clazz") #标题
sns.barplot(x="clazz",y="count",data=clazznum_DF) #调用barplot方法
sns.set_style('whitegrid',{
'font.sans-serif':['simhei','Arial']}) #解决中文乱码