Python 数据分析——通讯产品销售和盈利能力分析(2021泰迪杯数据分析技能赛)

统计产品在当地的销售数据


目录

1 统计各个年度/季度中,地区、国家、服务分类的销售额和利润数据

1.1 各年度的销售额和利润

1.1.1 按地区筛选销售额

1.1.2 按地区筛选利润

1.1.3  按国家筛选销售额

1.1.4 按国家筛选利润

1.1.5 按服务分类筛选销售额

1.1.6 按服务分类筛选利润

1.2 各季度的销售额和利润

1.2.1 按地区筛选销售额和利润

1.2.2  按国家筛选销售额和利润 

1.2.3 按服务筛选销售额和利润

2 计算各国、各服务分类销售额和利润的同比增长率

2.1 各国销售额同比增长率

2.2 各国利润同比增长率 

2.3 服务销售额同比增长率

2.4  服务利润同比增长率 


import pandas as pd
from pyecharts import options as opts

#中文乱码与坐标轴负号处理
plt.rcParams['font.sans-serif'] = ['Microsoft Yahei']
plt.rcParams['axes.unicode_minus'] = False

data = pd.read_excel("非洲通讯产品销售数据.xlsx")
data.head(5)

# 转换为日期格式
data["日期"] = pd.to_datetime(data["日期"])
# 将日期格式设置为索引,按照年月日筛选,此步骤必须有
data1 = data.set_index("日期")
data1

1 统计各个年度/季度中,地区、国家、服务分类的销售额和利润数据

1.1 各年度的销售额和利润

1.1.1 按地区筛选销售额

data_year17 = data1["2017"]
data_year17_diqu = data_year17.groupby(by='地区').sum()[['销售额','利润']]
#将其转为二维表
col=[]
for i in data_year17_diqu.columns:
    i=list(i)
    i[1]=str(i[1])
    col.append(''.join(i))
data_year17_diqu.columns=col
data_year17_diqu=data_year17_diqu.reset_index()
data_year17_diqu=data_year17_diqu.rename(columns={'销售额':'2017年销售额','利润':'2017年利润'})

data_year18 = data1["2018"]
data_year18_diqu = data_year18.groupby(by='地区').sum()[['销售额','利润']]
#将其转为二维表
col=[]
for i in data_year18_diqu.columns:
    i=list(i)
    i[1]=str(i[1])
    col.append(''.join(i))
data_year18_diqu.columns=col
data_year18_diqu=data_year18_diqu.reset_index()
data_year18_diqu=data_year18_diqu.rename(columns={'销售额':'2018年销售额','利润':'2018年利润'})

data_year19 = data1["2019"]
data_year19_diqu = data_year19.groupby(by='地区').sum()[['销售额','利润']]
#将其转为二维表
col=[]
for i in data_year19_diqu.columns:
    i=list(i)
    i[1]=str(i[1])
    col.append(''.join(i))
data_year19_diqu.columns=col
data_year19_diqu=data_year19_diqu.reset_index()
data_year19_diqu=data_year19_diqu.rename(columns={'销售额':'2019年销售额','利润':'2019年利润'})

data_year20 = data1["2020"]
data_year20_diqu = data_year20.groupby(by='地区').sum()[['销售额','利润']]
#将其转为二维表
col=[]
for i in data_year20_diqu.columns:
    i=list(i)
    i[1]=str(i[1])
    col.append(''.join(i))
data_year20_diqu.columns=col
data_year20_diqu=data_year20_diqu.reset_index()
data_year20_diqu=data_year20_diqu.rename(columns={'销售额':'2020年销售额','利润':'2020年利润'})
data_diqu = pd.merge(data_year17_diqu,data_year18_diqu,on='地区')
data_diqu = pd.merge(data_diqu,data_year19_diqu,on='地区')
data_diqu = pd.merge(data_diqu,data_year20_diqu,on='地区')
data_diqu

#转置
data_diqu1 = data_diqu.set_index('地区', inplace = False)
data_diqu2 = data_diqu1.T

data_diqu_xiaoshou = data_diqu2.loc[['2017年销售额','2018年销售额','2019年销售额','2020年销售额']]
data_diqu_xiaoshou

from pyecharts.charts import Line
from pyecharts.globals import CurrentConfig, OnlineHostType
CurrentConfig.ONLINE_HOST = OnlineHostType.NOTEBOOK_HOST
attr = list(['2017年销售额','2018年销售额','2019年销售额','2020年销售额'])
v1 = list(data_diqu_xiaoshou['Eastern'])
v2 = list(data_diqu_xiaoshou['Middle'])
v3 = list(data_diqu_xiaoshou['Northern'])
v4 = list(data_diqu_xiaoshou['Southern'])
v5 = list(data_diqu_xiaoshou['Western'])

line = (Line()
       .add_xaxis(attr)
       .add_yaxis('Eastern', v1)
       .add_yaxis('Middle',v2)
        .add_yaxis('Northern',v3)
        .add_yaxis('Southern',v4)
        .add_yaxis('Western',v5)
       )
line.render_notebook()

1.1.2 按地区筛选利润

data_diqu_lirun = data_diqu2.loc[['2017年利润','2018年利润','2019年利润','2020年利润']]

from pyecharts.charts import Bar
attr = list(['2017年利润','2018年利润','2019年利润','2020年利润'])
v1 = list(data_diqu_lirun['Eastern'])
v2 = list(data_diqu_lirun['Middle'])
v3 = list(data_diqu_lirun['Northern'])
v4 = list(data_diqu_lirun['Southern'])
v5 = list(data_diqu_lirun['Western'])

Bar = (Bar()
       .add_xaxis(attr)
       .add_yaxis('Eastern', v1)
       .add_yaxis('Middle',v2)
        .add_yaxis('Northern',v3)
        .add_yaxis('Southern',v4)
        .add_yaxis('Western',v5)
       )

Bar.render_notebook()

1.1.3  按国家筛选销售额

data_year17_guojia = data_year17.groupby(by='国家').sum()[['销售额','利润']]

#将其转为二维表
col=[]
for i in data_year17_guojia.columns:
    i=list(i)
    i[1]=str(i[1])
    col.append(''.join(i))
data_year17_guojia.columns=col
data_year17_guojia=data_year17_guojia.reset_index()
data_year17_guojia=data_year17_guojia.rename(columns={'销售额':'2017年销售额','利润':'2017年利润'})

data_year18_guojia = data_year18.groupby(by='国家').sum()[['销售额','利润']]

#将其转为二维表
col=[]
for i in data_year18_guojia.columns:
    i=list(i)
    i[1]=str(i[1])
    col.append(''.join(i))
data_year18_guojia.columns=col
data_year18_guojia=data_year18_guojia.reset_index()
data_year18_guojia=data_year18_guojia.rename(columns={'销售额':'2018年销售额','利润':'2018年利润'})

data_year19_guojia = data_year19.groupby(by='国家').sum()[['销售额','利润']]

#将其转为二维表
col=[]
for i in data_year19_guojia.columns:
    i=list(i)
    i[1]=str(i[1])
    col.append(''.join(i))
data_year19_guojia.columns=col
data_year19_guojia=data_year19_guojia.reset_index()
data_year19_guojia=data_year19_guojia.rename(columns={'销售额':'2019年销售额','利润':'2019年利润'})

data_year20_guojia = data_year20.groupby(by='国家').sum()[['销售额','利润']]

#将其转为二维表
col=[]
for i in data_year20_guojia.columns:
    i=list(i)
    i[1]=str(i[1])
    col.append(''.join(i))
data_year20_guojia.columns=col
data_year20_guojia=data_year20_guojia.reset_index()
data_year20_guojia=data_year20_guojia.rename(columns={'销售额':'2020年销售额','利润':'2020年利润'})

展示 2020 年年度销售额前 3 名的国家及其年增长率
data_year20_guojia1 = data_year20_guojia.sort_values(by='2020年销售额',ascending=False)
data_year20_guojia1.head(3)

#合并
data_guojia = pd.merge(data_year17_guojia,data_year18_guojia,on='国家')
data_guojia = pd.merge(data_guojia,data_year19_guojia,on='国家')
data_guojia = pd.merge(data_guojia,data_year20_guojia,on='国家')

from pyecharts.charts import Bar
attr = list(data_guojia['国家'])
v1 = list(data_guojia['2017年销售额'])
v2 = list(data_guojia['2018年销售额'])
v3 = list(data_guojia['2019年销售额'])
v4 = list(data_guojia['2020年销售额'])


Bar = (Bar()
       .add_xaxis(attr)
       .add_yaxis('2017年销售额', v1,stack="stack0")
       .add_yaxis('2018年销售额',v2,stack="stack0")
        .add_yaxis('2019年销售额',v3,stack="stack0")
        .add_yaxis('2020年销售额',v4,stack="stack0")
              .set_global_opts(
            #title_opts=opts.TitleOpts(title="国内平台登录次数", subtitle="副标题"),                         # 标题
            toolbox_opts=opts.ToolboxOpts(),                                                     # 工具箱
            datazoom_opts=opts.DataZoomOpts(range_start=0,range_end=100)                         # 横轴缩放
        )
       .set_series_opts(
        # 为了不影响标记点,这里把标签关掉
        label_opts=opts.LabelOpts(is_show=False))
      )
Bar.render_notebook()

 

1.1.4 按国家筛选利润

from pyecharts.charts import Bar
attr = list(data_guojia['国家'])
v1 = list(data_guojia['2017年利润'])
v2 = list(data_guojia['2018年利润'])
v3 = list(data_guojia['2019年利润'])
v4 = list(data_guojia['2020年利润'])


Bar = (Bar()
       .add_xaxis(attr)
       .add_yaxis('2017年利润', v1,stack="stack0")
       .add_yaxis('2018年利润',v2,stack="stack0")
        .add_yaxis('2019年利润',v3,stack="stack0")
        .add_yaxis('2020年利润',v4,stack="stack0")
              .set_global_opts(
            #title_opts=opts.TitleOpts(title="国内平台登录次数", subtitle="副标题"),                         # 标题
            toolbox_opts=opts.ToolboxOpts(),                                                     # 工具箱
            datazoom_opts=opts.DataZoomOpts(range_start=0,range_end=100)                         # 横轴缩放
        )
       .set_series_opts(
        # 为了不影响标记点,这里把标签关掉
        label_opts=opts.LabelOpts(is_show=False))
      )
Bar.render_notebook()

1.1.5 按服务分类筛选销售额

from pyecharts.charts import Bar
attr = list(data_fuwu['服务分类'])
v1 = list(data_fuwu['2017年销售额'])
v2 = list(data_fuwu['2018年销售额'])
v3 = list(data_fuwu['2019年销售额'])
v4 = list(data_fuwu['2020年销售额'])


Bar = (Bar()
       .add_xaxis(attr)
       .add_yaxis('2017年销售额', v1)
       .add_yaxis('2018年销售额',v2)
        .add_yaxis('2019年销售额',v3)
        .add_yaxis('2020年销售额',v4)
              .set_global_opts(
            #title_opts=opts.TitleOpts(title="国内平台登录次数", subtitle="副标题"),                         # 标题
            toolbox_opts=opts.ToolboxOpts(),                                                     # 工具箱
            datazoom_opts=opts.DataZoomOpts(range_start=0,range_end=100)                         # 横轴缩放
        )
       .set_series_opts(
        # 为了不影响标记点,这里把标签关掉
        label_opts=opts.LabelOpts(is_show=False))
      )
Bar.render_notebook()

 

1.1.6 按服务分类筛选利润

 

1.2 各季度的销售额和利润

1.2.1 按地区筛选销售额和利润

1.2.2  按国家筛选销售额和利润 

1.2.3 按服务筛选销售额和利润

from pyecharts import options as opts
from pyecharts.charts import Pie
 
teacher = ['1季度','2季度','3季度','4季度']
num1 = list(data_jidu1['2017年销售额'][:4])
num2 = list(data_jidu1['2018年销售额'][:4])
num3 = list(data_jidu1['2019年销售额'][:4])
num4 = list(data_jidu1['2020年销售额'][:4])

c = Pie()
 
# 是否展示成南丁格尔图,通过半径区分数据大小,有'radius'和'area'两种模式。
c.add("2017年销售额",[list(z) for z in zip(teacher,num1)],radius = ["30%","25%"],center=[150,220],rosetype='radius')   # radius:扇区圆心角展现数据的百分比,半径展现数据的大小
c.add("2018年销售额",[list(z) for z in zip(teacher,num2)],radius = ["30%","25%"],center=[620,220],rosetype='area')   # area:所有扇区圆心角相同,仅通过半径展现数据大小
c.add("2019年销售额",[list(z) for z in zip(teacher,num3)],radius = ["30%","25%"],center=[150,420],rosetype='radius')
c.add("2020年销售额",[list(z) for z in zip(teacher,num4)],radius = ["30%","25%"],center=[620,420],rosetype='area')
# 设置圆环的粗细和大小
c.set_global_opts(title_opts = opts.TitleOpts(title = "图"),legend_opts = opts.LegendOpts(orient = "vertical",pos_top = "5%",pos_left = "2%"))
c.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}:{c}"))
#c.render()
c.render_notebook()

2 计算各国、各服务分类销售额和利润的同比增长率

2.1 各国销售额同比增长率

#设置列对齐
pd.set_option('display.unicode.ambiguous_as_wide',True)
pd.set_option('display.unicode.east_asian_width',True)
for name,group in data1.groupby('国家'):
    group = group.resample('Y').sum()
    group["销售额同比增长率"] = group["销售额"].pct_change(periods=1)
    print(name)
    print(group)

2.2 各国利润同比增长率 

#设置列对齐
pd.set_option('display.unicode.ambiguous_as_wide',True)
pd.set_option('display.unicode.east_asian_width',True)
for name,group in data1.groupby('国家'):
    group = group.resample('Y').sum()
    group["利润同比增长率"] = group["利润"].pct_change(periods=1)
    print(name)
    print(group)

2.3 服务销售额同比增长率

#设置列对齐
pd.set_option('display.unicode.ambiguous_as_wide',True)
pd.set_option('display.unicode.east_asian_width',True)
for name,group in data1.groupby('服务分类'):
    group = group.resample('Y').sum()
    group["销售额同比增长率"] = group["销售额"].pct_change(periods=1)
    print(name)
    print(group)

2.4  服务利润同比增长率 

#设置列对齐
pd.set_option('display.unicode.ambiguous_as_wide',True)
pd.set_option('display.unicode.east_asian_width',True)
for name,group in data1.groupby('服务分类'):
    group = group.resample('Y').sum()
    group["利润同比增长率"] = group["利润"].pct_change(periods=1)
    print(name)
    print(group)

2021泰迪杯数据分析技能B题-肥料登记数据分析涉及到对肥料登记数据的分析。首先,我们需要从给定数据集中了解肥料登记的基本情况,包括肥料登记的时间、地点、登记人员等信息。 我们可以通过统计肥料登记的时间分布情况来了解登记的频率和趋势。可以计算每个月或每个季度的登记次数,进而观察登记是否有明显的季节性变化。用柱状图或折线图展示这些统计结果,可以更直观地展示肥料登记的时间规律。 除了时间,地点也是一个重要的分析维度。我们可以统计不同地点的登记次数,并绘制地理分布图或热力图,展示不同地区的登记活动情况。通过分析地区的登记情况,可以对不同地区的农作物种植情况、农业发展水平等信息做出初步的推测。 另外,我们还可以对登记人员进行统计,分析不同人员的登记次数和质量。通过比较不同人员的登记质量、效率,可以评估各个人员的工作表现,为进一步完善肥料登记流程提供依据。 此外,还可以对肥料登记的数据进行关联分析,将肥料登记数据和农作物产量、土壤质量等相关数据进行关联,探究肥料使用的效果和影响因素。通过相关性分析、回归分析等方法,可以探索肥料使用量与农作物产量之间的关系,并为优化农业生产提供科学依据。 综上所述,在2021泰迪杯数据分析技能B题-肥料登记数据分析中,我们可以从时间、地点、登记人员以及与其他关联数据之间的关系等多个维度对登记数据进行统计分析,为有效管理肥料登记数据、优化农业生产提供支持和建议。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值