8.2.4、Python__Pandas数据分析,使用pandas读取mysql数据,做基本的数据分许,使用seaborn画图

使用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']}) 	#解决中文乱码

猜你喜欢

转载自blog.csdn.net/nerer/article/details/121218892