通讯产品销售和盈利能力分析
此报告是去年比赛的时候写的,代码上如果有不足的地方还望大家多多包涵~
赛题A二等奖报告
目录
一、 背景
进入本世纪以来,我国通讯产品得到了飞速发展,其技术先进,价格便宜,深受世界各国和地区尤其是非洲国家的欢迎。某通讯公司在非洲的多个国家深耕多年,产品与服务遍布整个非洲大陆。为了更好地了解公司的销售情况,采用产品的销售额和利润数据,对其盈利能力进行分析和预测,给决策人员提供分析报告,以便为非洲各国提供更好的产品销售策略和服务。
二、 目标
- 1. 统计产品在当地的销售数据,预测未来的销售情况。
- 2. 设计可视化数字大屏,展示产品的销售情况,分析产品的盈利能力。
三、 任务
任务 1
-
数据分析与预测
任务 1.1
- 统计各个年度/季度中,地区、国家、服务分类的销售额和利润数据,并计算各国、各服务分类销售额和利润的同比增长率。
实现思路:
- 首先将文件加载,然后新增记录年份月季度,并使用数据透视表,将年份、地区、国家、服务分类等字段作为行标,将要进行计算的字段:销售额、利润字段作为值,并对值进行求和运算,将处理好的数据保存为 excel 文件。 加载处理好的季度与年度销售额利润统计文件,按年份与服务分类进行分组,并使用agg 聚合函数对销售额与利润列进行求和。并自定义一个函数来计算出销售额与利润的同比增长率。将处理好的数据保存
实现代码:
def task1_1():
df = pd.read_excel('../非洲通讯产品销售数据.xlsx')
df = pd.DataFrame(df)
df['日期'] = pd.to_datetime(df['日期'])
df['年份'] = df['日期'].dt.year
df['季度'] = df['日期'].dt.quarter
year_annual = pd.pivot_table(df, index=['年份', '地区', '国家', '服务分类'], values=['销售额', '利润'],
aggfunc='sum').reset_index()
quarter_annual = pd.pivot_table(df, index=['年份', '季度', '地区', '国家', '服务分类'], values=['销售额', '利润'],
aggfunc='sum').reset_index()
print(year_annual)
print(quarter_annual)
year_annual.to_excel('各年度销售额与利润统计.xlsx', index=False)
quarter_annual.to_excel('各季度销售额与利润统计.xlsx', index=False)
# task1_1()
def tongbi(data):
data['tongbi_shu'] = data.销售额.diff()
data['tongbi_shu1'] = data.利润.diff()
data.fillna(0, inplace=True)
data['销售额同比增长率'] = data['tongbi_shu'] / (data['销售额'] - data['tongbi_shu'])
data['利润同比增长率'] = data['tongbi_shu1'] / (data['利润'] - data['tongbi_shu1'])
return data
# ,并计算各国、各服务分类销售额和利润的同比增长率。
def task1_1_sub():
df = pd.read_excel('各季度销售额与利润统计.xlsx')
df1 = pd.read_excel('各年度销售额与利润统计.xlsx')
df1.drop(columns=['服务分类'], inplace=True)
df1 = df1.groupby(['年份', '国家']).agg({'销售额': 'sum', '利润': 'sum'}).reset_index()
df1 = df1.groupby(['国家']).apply(tongbi)
df1.to_excel('各国家同比增长率.xlsx', index=False)
df2 = df.groupby(['年份', '服务分类']).agg({'销售额': 'sum', '利润': 'sum'}).reset_index()
df2 = df.groupby(['服务分类']).apply(tongbi)
df2.to_excel('各服务分类同比增长率.xlsx', index=False)
print(df2)
# task1_1_sub()
# 任务 1.2 统计各地区、国家有关服务分类销售额和利润数据。
def task1_2():
df = pd.read_excel('../非洲通讯产品销售数据.xlsx')
# print(df.head(200).to_string())
df1 = pd.pivot_table(df, index=['地区', '国家', '服务分类'], values=['销售额', '利润'], aggfunc=np.sum).reset_index()
print(df1.head(100).to_string())
df1.to_excel('各地区、国家、服务分类销售额和利润.xlsx', index=False)
各国、各服务分类销售额和利润的同比增长率处理代码
处理后的数据:
2020 年年度销售额前 3 名的国家及其年增长率
任务 1.2
- 统计各地区、国家有关服务分类销售额和利润数据。
实现思路:
- 首先将处理好的数据加载,并按照国家、服务分类、季度进行分组,并将处理好的文件保存。
实现代码:
def task1_2():
df = pd.read_excel('../非洲通讯产品销售数据.xlsx')
# print(df.head(200).to_string())
df1 = pd.pivot_table(df, index=['地区', '国家', '服务分类'], values=['销售额', '利润'], aggfunc=np.sum).reset_index()
print(df1.head(100).to_string())
df1.to_excel('各地区、国家、服务分类销售额和利润.xlsx', index=False)
处理后的图表:
任务 1.3
- 统计各个销售经理的成交合同数和成交率。
实现思路:
- 首先将数据加载,分别按照销售经理字段进行分组求和,成交率字段求均值,将两个表进行合并,并更改成交率的格式为百分比格式。将处理好的文件进行保存。
实现代码:
def task1_3():
df = pd.read_excel('../非洲通讯产品销售数据.xlsx', sheet_name=1)
# print(df)
df = pd.DataFrame(df)
# df = df.drop(["备注:本表格中“销售合同”为“已成交合同”。"])
# print(df.to_string())
df1 = df["销售合同"].groupby(df["销售经理"]).sum()
df1 = pd.DataFrame(df1).sort_values('销售经理', ascending=False).reset_index()
df2 = df["成交率"].groupby(df["销售经理"]).mean()
df2 = pd.DataFrame(df2).sort_values('销售经理', ascending=False).reset_index()
df3 = pd.merge(df1, df2, on="销售经理")
df3["成交率"] = df3["成交率"].apply(lambda x: format(x, '.2%'))
print(df3)
df3.to_excel("各销售经理的成交合同数和成交率.xlsx")
处理后的数据:
任务 1.4
- 分别预测各个地区、国家、服务分类 2021 年第一季度销售额和利润
实现思路:
- 通过 Excel 数据透视表,将年份、季度、拖拽到行标签,将销售额与利润作为作为计算字段进行求和,通过 Excel 公式:=TREND($B$20:$B$23) 来计算 2021 年的第一季度的销售额
任务 2 可视化展示和撰写分析报告
任务 2.1
- 绘制非洲各国产品的销售地图,并能够查看该国的销售额和利润。根据销售额的降序排列,绘制非洲各国产品销售额和利润数据的图表。
实现思路:
- 利用 TipDM-BI 平台,导入各国产品销售额和利润的数据表,根据国家画出地图,用颜色来区分各国的销售额和利润,图 2 将销售额作为行,国家为列绘制出柱状图,图3将利润作为行,国家为列绘制出柱状图。
任务 2.2
- 根据地区、国家等维度,绘制各服务分类的销售额和利润的年增长率及各季度同比增长率的图表。 实现思路: 通过各季度的同比增长率来绘制图表,将季度作为行标,将增长率作为列标
任务 2.3
- 根据地区、国家等维度,绘制 2021 年第一季度各服务分类的销售额和利润预测值的图表。
实现思路:
- 能力有限,需要用到机器学习,我们当时还没学……
任务 2.4
- 绘制销售经理的销售合同数前 5 名排行榜。
实现思路:
- 引入销售合同数量和销售经理,以销售合同数量作为排行榜的根据
任务 2.5
- 绘制销售额后 10 名的国家排行榜。
实现思路:
- 以国家作为行,销售额作为列,将销售额设为倒序并筛选十行,将图绘制出来。
任务 2.6
- 分析数字大屏的指标数据和图表,撰写公司产品的销售情况和盈利能力的分析报告。
结论:
- 根据图 1 可以看出家庭电话的销售额最高,其次是私人电话,最后是公共电话, 但总体的销售情况差距不大。 根据图二可以看出公共电话的利润是最低的,与利润最高的家庭电话相差了一倍。