第四届“泰迪杯”数据分析技能赛-赛题A:《通讯产品销售和盈利能力分析》报告

简介: 第四届“泰迪杯”数据分析技能赛-赛题A:《通讯产品销售和盈利能力分析》报告

通讯产品销售和盈利能力分析

此报告是去年比赛的时候写的,代码上如果有不足的地方还望大家多多包涵~

赛题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)


各国、各服务分类销售额和利润的同比增长率处理代码


处理后的数据:

2eba0a26edf24155b3e3701c793c20ba.png

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)

处理后的图表:


a08582da9a2b4fabb2d8047c965090cc.png


任务 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")

处理后的数据:


a08582da9a2b4fabb2d8047c965090cc.png


任务 1.4

分别预测各个地区、国家、服务分类 2021 年第一季度销售额和利润

实现思路:

78023721d27c4ee89d3018d81f1dfd64.png


通过 Excel 数据透视表,将年份、季度、拖拽到行标签,将销售额与利润作为作为计算字段进行求和,通过 Excel 公式:=TREND($B$20:$B$23) 来计算 2021 年的第一季度的销售额

f4207e3d2c7c4e518526b848911fa919.png


任务 2 可视化展示和撰写分析报告

       任务 2.1

绘制非洲各国产品的销售地图,并能够查看该国的销售额和利润。根据销售额的降序排列,绘制非洲各国产品销售额和利润数据的图表。


4abcce8db86f474a9c56d023875c8969.png


7c02d09a512046b3be8ca1ac5fea1909.png


6625c7bbe0834b6fb8d1c712e954c92c.png

实现思路:

利用 TipDM-BI 平台,导入各国产品销售额和利润的数据表,根据国家画出地图,用颜色来区分各国的销售额和利润,图 2 将销售额作为行,国家为列绘制出柱状图,图3将利润作为行,国家为列绘制出柱状图。

任务 2.2

根据地区、国家等维度,绘制各服务分类的销售额和利润的年增长率及各季度同比增长率的图表。 实现思路: 通过各季度的同比增长率来绘制图表,将季度作为行标,将增长率作为列标

438f8698516c44a1af1b008bd7fd8600.png


任务 2.3

根据地区、国家等维度,绘制 2021 年第一季度各服务分类的销售额和利润预测值的图表。

实现思路:

能力有限,需要用到机器学习,我们当时还没学……

任务 2.4

绘制销售经理的销售合同数前 5 名排行榜。


8268022de874451789a20c90718a1d22.png

实现思路:

引入销售合同数量和销售经理,以销售合同数量作为排行榜的根据

任务 2.5

绘制销售额后 10 名的国家排行榜。

a138943f3dc44cffb34985585fba0fbc.png


实现思路:

以国家作为行,销售额作为列,将销售额设为倒序并筛选十行,将图绘制出来。

任务 2.6

分析数字大屏的指标数据和图表,撰写公司产品的销售情况和盈利能力的分析报告。

87d27b36d092435aa448635b600d01c6.png


结论:

根据图 1 可以看出家庭电话的销售额最高,其次是私人电话,最后是公共电话, 但总体的销售情况差距不大。 根据图二可以看出公共电话的利润是最低的,与利润最高的家庭电话相差了一倍。


faf0114e826b4b1b99b08f4079529f7f.png

相关文章
|
3月前
|
数据采集 存储 数据挖掘
【优秀python数据分析案例】基于Python书旗网小说网站数据采集与分析的设计与实现
本文介绍了一个基于Python的书旗网小说网站数据采集与分析系统,通过自动化爬虫收集小说数据,利用Pandas进行数据处理,并通过Matplotlib和Seaborn等库进行数据可视化,旨在揭示用户喜好和市场趋势,为图书出版行业提供决策支持。
312 6
【优秀python数据分析案例】基于Python书旗网小说网站数据采集与分析的设计与实现
|
1月前
|
数据挖掘 UED
ChatGPT数据分析——探索性分析
ChatGPT数据分析——探索性分析
|
1月前
|
数据可视化 数据挖掘 数据处理
ChatGPT数据分析应用——热力图分析
ChatGPT数据分析应用——热力图分析
|
1月前
|
数据挖掘
ChatGPT在常用的数据分析方法中的应用(分组分析)
ChatGPT在常用的数据分析方法中的应用(分组分析)
|
1月前
|
机器学习/深度学习 数据采集 数据可视化
如何理解数据分析及数据的预处理,分析建模,可视化
如何理解数据分析及数据的预处理,分析建模,可视化
49 0
|
1月前
|
数据挖掘
ChatGPT在常用的数据分析方法中的应用(对比分析)
ChatGPT在常用的数据分析方法中的应用(对比分析)
|
2月前
|
机器学习/深度学习 人工智能 数据挖掘
数据分析师是在多个行业中专门从事数据搜集、整理和分析的专业人员
数据分析师是在多个行业中专门从事数据搜集、整理和分析的专业人员
38 3
|
2月前
|
机器学习/深度学习 数据挖掘 TensorFlow
解锁Python数据分析新技能,TensorFlow&PyTorch双引擎驱动深度学习实战盛宴
在数据驱动时代,Python凭借简洁的语法和强大的库支持,成为数据分析与机器学习的首选语言。Pandas和NumPy是Python数据分析的基础,前者提供高效的数据处理工具,后者则支持科学计算。TensorFlow与PyTorch作为深度学习领域的两大框架,助力数据科学家构建复杂神经网络,挖掘数据深层价值。通过Python打下的坚实基础,结合TensorFlow和PyTorch的强大功能,我们能在数据科学领域探索无限可能,解决复杂问题并推动科研进步。
61 0
|
3月前
|
数据采集 数据可视化 数据挖掘
如何提升个人数据分析技能?
【8月更文挑战第7天】如何提升个人数据分析技能?
62 4