第四届“泰迪杯”数据分析技能赛-赛题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

相关文章
|
2月前
|
搜索推荐 数据挖掘 C++
数据分析方法-对比分析和用户画像
数据分析方法-对比分析和用户画像
70 1
数据分析方法-对比分析和用户画像
|
2月前
|
数据采集 数据可视化 数据挖掘
数据分析案例-汽车客户信息数据可视化分析
数据分析案例-汽车客户信息数据可视化分析
115 0
|
2月前
|
数据可视化 架构师 数据挖掘
数据分析案例-数据科学相关岗位薪资可视化分析
数据分析案例-数据科学相关岗位薪资可视化分析
53 0
|
2月前
|
数据采集 数据可视化 数据挖掘
数据分析案例-BI工程师招聘岗位信息可视化分析
数据分析案例-BI工程师招聘岗位信息可视化分析
60 0
|
4月前
|
机器学习/深度学习 自然语言处理 数据挖掘
Python数据分析中文本分析的重要技术点,包括文本预处理、特征提取、情感分析
Python数据分析中文本分析的重要技术点,包括文本预处理、特征提取、情感分析
90 1
Python数据分析中文本分析的重要技术点,包括文本预处理、特征提取、情感分析
|
2月前
|
数据可视化 搜索推荐 数据挖掘
数据分析案例-顾客购物数据可视化分析
数据分析案例-顾客购物数据可视化分析
100 0
|
2天前
|
数据可视化 数据挖掘
R语言生存分析数据分析可视化案例(上)
R语言生存分析数据分析可视化案例
|
11天前
|
数据采集 数据可视化 数据挖掘
Seaborn在数据分析中的应用:案例分析与实践
【4月更文挑战第17天】本文介绍了Seaborn在数据分析中的应用,它是一个基于Python的可视化库,简化了复杂数据的图表创建。通过一个销售数据分析的案例,展示了数据加载、描述性统计、相关性分析、多变量分析及高级可视化步骤。实践技巧包括数据清洗、图表选择、颜色使用、注释标签和交互性。Seaborn助力高效数据探索和理解,提升分析效率。注意,实际使用需根据数据集和目标调整,并参考最新文档。
|
24天前
|
存储 机器学习/深度学习 数据采集
数据分析师如何处理数据以进行分析?
【4月更文挑战第4天】数据分析师如何处理数据以进行分析?
19 9
|
1月前
|
机器学习/深度学习 数据可视化 算法
python数据分析——在面对各种问题时,因如何做分析的分类汇总
Python数据分析是指使用Python编程语言对数据进行收集、处理、分析和可视化的过程。Python是一种非常流行的编程语言,具有简单易学、代码可读性高、生态系统强大的特点,因此在数据科学领域得到广泛应用。
85 0