import pandas as pd# 文件路径为python文件位置下的相对路径 dwx = pd.read_excel("电蚊香套装市场近三年交易额.xlsx", ) fmfz = pd.read_excel("防霉防蛀片市场近三年交易额.xlsx") msmc = pd.read_excel("灭鼠杀虫剂市场近三年交易额.xlsx") mz = pd.read_excel("盘香灭蟑香蚊香盘市场近三年交易额.xlsx") wxq = pd.read_excel("蚊香加热器市场近三年交易额.xlsx") wxp = pd.read_excel("蚊香片市场近三年交易额.xlsx") wxy = pd.read_excel("蚊香液市场近三年交易额.xlsx") # 使用head()方法查看前5行数据 print(dwx.head()) # 使用tail()方法查看后5行数据 print(dwx.tail()) # 使用info()方法查看数据的字段及类型 dwx.info() # 用sum方法汇总数据 dwx_all = dwx['交易金额'].sum() # 汇总单张表格数据 print(dwx_all) fmfz_all = fmfz['交易金额'].sum()msmc_all = msmc['交易金额'].sum() mz_all = mz['交易金额'].sum() wxq_all = wxq['交易金额'].sum() wxp_all = wxp['交易金额'].sum() wxy_all = wxy['交易金额'].sum() # 将7张表格的数据汇总并形成一张表 m_sum = pd.DataFrame(data=[dwx_all, fmfz_all, msmc_all, mz_all, wxq_all, wxp_all, wxy_all], columns=['销售额'],index=['电蚊香', '防霉防蛀', '灭鼠灭虫', '灭蟑', '蚊香加热器', '蚊香片', '蚊香液']) m_sumtext = pd.DataFrame(data=[dwx_all, fmfz_all, msmc_all, mz_all, wxq_all, wxp_all, wxy_all], columns=['销售额'],index=['电蚊香', '防霉防蛀', '灭鼠灭虫', '灭蟑', '蚊香加热器', '蚊香片', '蚊香液']) print(m_sum) # 对上述数据进行行汇总,得到驱虫市场总规模 m_sum.loc['Row_sum'] = m_sum.apply(lambda x: x.sum()) m_sumtext.loc['Row_sum'] = m_sumtext.apply(lambda x: x.sum()) # 或者m_sum ['Col_sum'] = m_sum.sum() print(m_sum) # 在上一节的基础上计算相对规模 m_sum['份额占比'] = m_sum / m_sum.loc['Row_sum'] print(m_sum) print("_____________________________") # 将份额占比调整为百分比,保留1位小数m_sumtext['份额占比'] = round(m_sumtext / m_sumtext.loc['Row_sum'] * 100, 1) # 并将最后一行Row_sum删除 m_sum.drop(labels=['Row_sum'], axis=0, inplace=True)# 首先导入matplotlib绘图包 import matplotlib.pyplot as plt# 设置参数,以确保图像正确显示 plt.rcParams['font.sans-serif'] = 'simhei' # 用来正常显示中文标签 plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号 # 将叶子行业的名称设置为x轴,叶子行业的绝对份额设置为y轴 x = m_sum.index.values.tolist() y = m_sum["销售额"].values.tolist() # 设置画布大小 pl = plt.figure(figsize=(8, 6)) # 表示图片的大小为宽8inch、高6inch(单位为inch) # 绘制叶子市场绝对份额柱形图 plt.bar(x, y) # 设置标题以及x轴标题,y轴标题 plt.xlabel('叶子市场') plt.ylabel('市场绝对份额') # 设置数字标签 for a, b in zip(x, y):plt.text(a, b + 0.05, '%.0f' % b, ha='center', va='bottom', fontsize=8) plt.show()# 用市场相对份额绘制饼图 # 将叶子行业名称设置为饼图的标签,相对市场份额设置为饼图的大小 labels = m_sum.index.values.tolist() sizes = m_sum["份额占比"].values.tolist() # 设置画布大小宽8inch,高6inch pl = plt.figure(figsize=(8, 6)) # 绘制饼图,autopct='%.1f%%':# 设置百分比的格式,此处保留1位小数,f后面的两个%表示实际显示数字的百分号,startangle=180# 设置饼图的初始角度。 plt.pie(sizes, labels=labels, autopct='%.1f%%', shadow=False, startangle=180) # 设置标题 plt.title("叶子市场相对市场份额") # 设置饼图使得饼图为圆形,如图4-2所示 plt.axis('equal') plt.show()