0
点赞
收藏
分享

微信扫一扫

C6.19 使用描述统计和直方图制定目标

Xin_So 2022-03-15 阅读 57

数据来源

import pandas as pd
import matplotlib.pyplot as plt
import xlwings as xw

df = pd.read_excel(r'd:\python_file\描述统计.xlsx')
df.columns = ['序号', '员工姓名', '月销售额']   # 重命名数据列
df = df.drop(columns=['序号','员工姓名'])   # 删除列
df_describe = df.astype('float').describe()      # 计算数据的个数,平均值,最大值,最小值
df_cut = pd.cut(df['月销售额'], bins=7, precision=2)    # 将列数据分成7个均等的区间
cut_count = df['月销售额'].groupby(df_cut).count()     # 统计各个区间的人数
df_all = pd.DataFrame()   # 用于汇总数据
df_all['计数'] = cut_count     # 将月销售的区间及区间的人数写入前面创建的dataframe中
df_all_new = df_all.reset_index()     # 将索引重置为数字序号
df_all_new['月销售额'] = df_all_new['月销售额'].apply(lambda x:str(x))    # 将列数字转为字符串
fig = plt.figure()  # 创建汇图窗口
plt.rcParams['font.sans-serif'] = ['SimHei']    # 解决中文乱码问题
n, bins, patches = plt.hist(df['月销售额'], bins=7, edgecolor='black', linewidth=0.5)    # 使用列数扰据绘制直方图
plt.xticks(bins)   # 将x轴的刻度标签设置为各区间的端点值
plt.title('月销售额频率分析')    # 设置直方图的图表标题
plt.xlabel('月销售额')    # 设置x轴标题
plt.ylabel('频数')    # 设置y轴标题

app = xw.App(visible=False)
workbook = xw.books.open(r'd:\python_file\描述统计.xlsx')
worksheet = workbook.sheets['业务员销售额统计表']
worksheet.range('E2').value = df_describe
worksheet.range('H2').value = df_all_new
worksheet.pictures.add(fig, name='图片1', update=True, left=400, top=200)
worksheet.autofit()
workbook.save(r'd:\python_file\描述统计.xlsx')
workbook.close()
app.quit()

效果图

举报

相关推荐

0 条评论