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()
C6.19 使用描述统计和直方图制定目标
最新推荐文章于 2022-06-30 21:52:46 发布