对excel文件区间分类并统计作图

import pandas as pd
import os
import interval
import matplotlib.pyplot as plt
import xlsxwriter
#只能创建打开新的excel文件


path='/Users/kangyongqing/Documents/kangyq/202205/教师分级&绩效考核/教师分级——课频和转化/9月之后教师分级/'
dfpath=os.path.join(path,'23年2月教师分级.xlsx')


def data_divide(x):
    if x in interval.Interval(0, 1, upper_closed=False):
        return "0)0"
    elif x in interval.Interval(1, 10, upper_closed=False):
        return "1)1-9"
    elif x in interval.Interval(10, 50, upper_closed=False):
        return "2)10-49"
    elif x in interval.Interval(50, 100, upper_closed=False):
        return "3)50-99"
    else:
        return "4)100+"


df=pd.read_excel(dfpath,dtype={'老师id':object})
print(df.columns)
df['qian3']=df['前3个月试听学生数'].apply(data_divide)
jihe=df.groupby('qian3')['老师id'].count()
jihe.rename('老师数量',inplace=True)
fenlei=df.groupby('月度分级区间')['老师id'].count()

writer=pd.ExcelWriter(path+'jihe.xlsx')
jihe.to_excel(writer,sheet_name='jihe')
fenlei.to_excel(writer,sheet_name='fenlei')
writer.save()
print('保存完毕')




figure1=plt.figure(figsize=(6,6))
#建画板
plt.pie(jihe,labels=(jihe.values),autopct='%1.1f%%')
#做饼图,添加标签,显示百分比
plt.legend(jihe.index.values)
#添加图例
plt.rcParams['font.sans-serif'] = ['Songti SC']
#mac处理中文标题无法显示的问题
plt.suptitle('各试听课量区间教师人数分布')
#添加标题
# plt.show()
plt.savefig(path+'fenbu.png')
# plt.close()


book=xlsxwriter.Workbook(path+'chatu.xlsx')
sheet=book.add_worksheet('图片')
sheet.insert_image('A2',path+'fenbu.png')
book.close()
# 创建新的表,并插入图片,如果使用已存在的表,会覆盖原有数据


print('插入图片完毕')

猜你喜欢

转载自blog.csdn.net/Darin2017/article/details/129286901