2025.01.15python商业数据分析top3

发布于:2024-12-22 ⋅ 阅读:(133) ⋅ 点赞:(0)
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()

网站公告

今日签到

点亮在社区的每一天
去签到