网站开发必看书籍,做业务在那几个网站上找客户端,深圳做网站的人,泰安有口碑的企业建站公司【课程1.3】 对比分析对比分析 → 两个互相联系的指标进行比较绝对数比较#xff08;相减#xff09; / 相对数比较#xff08;相除#xff09;
结构分析、比例分析、空间比较分析、动态对比分析 import numpy as np
import pandas as pd
import matplotlib.pyplot as plt…
【课程1.3】 对比分析对比分析 → 两个互相联系的指标进行比较绝对数比较相减 / 相对数比较相除
结构分析、比例分析、空间比较分析、动态对比分析 import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
% matplotlib inline # 1、绝对数比较 → 相减
# 相互对比的指标在量级上不能差别过大
# 1折线图比较
# 2多系列柱状图比较data pd.DataFrame(np.random.rand(30,2)*1000,columns [A_sale,B_sale],index pd.period_range(20170601,20170630))
print(data.head())
# 创建数据 → 30天内A/B产品的日销售额data.plot(kindline,style --.,alpha 0.8,figsize (10,3),title AB产品销量对比-折线图)
# 折线图比较data.plot(kind bar,width 0.8,alpha 0.8,figsize (10,3),title AB产品销量对比-柱状图)
# 多系列柱状图比较 输出 A_sale B_sale
2017-06-01 334.812619 778.500279
2017-06-02 921.431743 970.734046
2017-06-03 785.444137 481.548456
2017-06-04 359.790330 259.824537
2017-06-05 657.224681 332.818389 # 1、绝对数比较 → 相减
# 3柱状图堆叠图差值折线图比较fig3 plt.figure(figsize(10,6))
plt.subplots_adjust(hspace0.3)
# 创建子图及间隔设置ax1 fig3.add_subplot(2,1,1)
x range(len(data))
y1 data[A_sale]
y2 -data[B_sale]
plt.bar(x,y1,width 1,facecolor yellowgreen)
plt.bar(x,y2,width 1,facecolor lightskyblue)
plt.title(AB产品销量对比-堆叠图)
plt.grid()
plt.xticks(range(0,30,6))
ax1.set_xticklabels(data.index[::6])
# 创建堆叠图ax2 fig3.add_subplot(2,1,2)
y3 data[A_sale]-data[B_sale]
plt.plot(x,y3,--go)
plt.axhline(0,holdNone,colorr,linestyle--,alpha0.8) # 添加y轴参考线
plt.grid()
plt.title(AB产品销量对比-差值折线)
plt.xticks(range(0,30,6))
ax2.set_xticklabels(data.index[::6])
# 创建差值折线图 输出 [matplotlib.text.Text at 0x9faa9b0,matplotlib.text.Text at 0x9fa6e48,matplotlib.text.Text at 0x9fed0f0,matplotlib.text.Text at 0x9fedb38,matplotlib.text.Text at 0x9ff15c0] # 2、相对数比较 → 相除
# 有联系的指标综合计算后的对比数值为相对数
# 结构分析、比例分析、空间比较分析、动态对比分析、计划完成度分析
# 1结构分析
# 在分组基础上各组总量指标与总体的总量指标对比计算出各组数量在总量中所占比重
# 反映总体的内部结构data pd.DataFrame({A_sale:np.random.rand(30)*1000,B_sale:np.random.rand(30)*200},index pd.period_range(20170601,20170630))
print(data.head())
print(------)
# 创建数据 → 30天内A/B产品的日销售额
# A/B产品销售额量级不同data[A_per] data[A_sale] / data[A_sale].sum()
data[B_per] data[B_sale] / data[B_sale].sum()
# 计算出每天的营收占比data[A_per%] data[A_per].apply(lambda x: %.2f%% % (x*100))
data[B_per%] data[B_per].apply(lambda x: %.2f%% % (x*100))
# 转换为百分数
print(data.head())fig,axes plt.subplots(2,1,figsize (10,6),sharexTrue)
data[[A_sale,B_sale]].plot(kindline,style --.,alpha 0.8,axaxes[0])
axes[0].legend(loc upper right)
data[[A_per,B_per]].plot(kindline,style --.,alpha 0.8,axaxes[1])
axes[1].legend(loc upper right)
# 绝对值对比较难看出结构性变化通过看销售额占比来看售卖情况的对比# 同时可以反应“强度” → 两个性质不同但有一定联系的总量指标对比用来说明“强度”、“密度”、“普遍程度”
# 例如国内生产总值“元/人”人口密度“人/平方公里” 输出 A_sale B_sale
2017-06-01 688.134982 6.759655
2017-06-02 310.911156 141.978290
2017-06-03 227.496397 123.595400
2017-06-04 905.453084 64.534911
2017-06-05 374.572618 147.550005
------A_sale B_sale A_per B_per A_per% B_per%
2017-06-01 688.134982 6.759655 0.045606 0.002227 4.56% 0.22%
2017-06-02 310.911156 141.978290 0.020606 0.046780 2.06% 4.68%
2017-06-03 227.496397 123.595400 0.015077 0.040723 1.51% 4.07%
2017-06-04 905.453084 64.534911 0.060009 0.021263 6.00% 2.13%
2017-06-05 374.572618 147.550005 0.024825 0.048616 2.48% 4.86% # 2、相对数比较 → 相除
# 2比例分析
# 在分组的基础上将总体不同部分的指标数值进行对比其相对指标一般称为“比例相对数”
# 比例相对数 总体中某一部分数值 / 总体中另一部分数值 → “基本建设投资额中工业、农业、教育投资的比例”、“男女比例”...data pd.DataFrame({consumption:np.random.rand(12)*1000 2000,salary:np.random.rand(12)*500 5000},index pd.period_range(2017/1,2017/12,freq M))
print(data.head())
print(------)
# 创建数据 → 某人一年内的消费、工资薪水情况
# 消费按照2000-3000/月随机工资按照5000-5500/月随机data[c_s] data[consumption] / data[salary]
print(data.head())
# 比例相对数 → 消费收入比data[c_s].plot.area(color green,alpha 0.5,ylim [0.3,0.6],figsize(8,3),gridTrue)
# 创建面积图表达 输出 consumption salary
2017-01 2300.613040 5349.939624
2017-02 2256.167470 5477.291974
2017-03 2356.130582 5366.495609
2017-04 2680.961342 5203.749452
2017-05 2612.676360 5395.189285
------consumption salary c_s
2017-01 2300.613040 5349.939624 0.430026
2017-02 2256.167470 5477.291974 0.411913
2017-03 2356.130582 5366.495609 0.439045
2017-04 2680.961342 5203.749452 0.515198
2017-05 2612.676360 5395.189285 0.484260 # 2、相对数比较 → 相除
# 3空间比较分析横向对比分析
# 同类现象在同一时间不同空间的指标数值进行对比反应同类现象在不同空间上的差异程度和现象发展不平衡的状况
# 空间比较相对数 甲空间某一现象的数值 / 乙空间同类现象的数值
# 一个很现实的例子 → 绝对数来看我国多经济总量世界第一但从人均水平来看是另一回事data pd.DataFrame({A:np.random.rand(30)*5000,B:np.random.rand(30)*2000,C:np.random.rand(30)*10000,D:np.random.rand(30)*800},index pd.period_range(20170601,20170630))
print(data.head())
print(------)
# 创建数据 → 30天内A/B/C/D四个产品的销售情况
# 不同产品的销售量级不同data.sum().plot(kind bar,color [r,g,b,k], alpha 0.8, grid True)
for i,j in zip(range(4),data.sum()):plt.text(i-0.25,j2000,%.2f % j, color k)
# 通过柱状图做横向比较 → 4个产品的销售额总量data[:10].plot(kind bar,color [r,g,b,k], alpha 0.8, grid True, figsize (12,4),width 0.8)
# 多系列柱状图横向比较前十天4个产品的销售额# 关于同比与环比
# 同比 → 产品A在2015.3和2016.3的比较相邻时间段的同一时间点
# 环比 → 产品A在2015.3和2015.4的比较相邻时间段的比较
# 如何界定“相邻时间段”与“时间点”决定了是同比还是环比 输出 A B C D
2017-06-01 2850.211921 1647.138351 5276.354493 529.747107
2017-06-02 3222.680792 768.466753 6941.803099 284.760211
2017-06-03 727.193796 1732.612257 3311.883561 332.427362
2017-06-04 2582.599603 444.224737 1829.401025 744.340597
2017-06-05 1756.352061 1731.221585 7583.832278 768.792895 # 2、相对数比较 → 相除
# 4动态对比分析纵向对比分析
# 同一现象在不同时间上的指标数值进行对比反应现象的数量随着时间推移而发展变动的程度及趋势
# 最基本方法计算动态相对数 → 发展速度
# 动态相对数发展速度 某一现象的报告期数值 / 同一现象的基期数值
# 基期用来比较的基础时期
# 报告期所要研究的时期又称计算期data pd.DataFrame({A:np.random.rand(30)*20001000},index pd.period_range(20170601,20170630))
print(data.head())
print(------)
# 创建数据 → 30天内A产品的销售情况data[base] 1000 # 假设基期销售额为1000后面每一天都为计算期
data[l_growth] data[A] - data[base] # 累计增长量 报告期水平 - 固定基期水平
data[z_growth] data[A] - data.shift(1)[A] # 逐期增长量 报告期水平 - 报告期前一期水平
data[data.isnull()] 0 # 替换缺失值data[[l_growth,z_growth]].plot(figsize (10,4),style --.,alpha 0.8)
plt.axhline(0,holdNone,colorr,linestyle--,alpha0.8) # 添加y轴参考线
plt.legend(loc lower left)
plt.grid()
# 通过折线图查看增长量情况data[lspeed] data[l_growth] / data[base] # 定基增长速度
data[zspeed] data[z_growth] / data.shift(1)[A] # 环比增长速度
data[[lspeed,zspeed]].plot(figsize (10,4),style --.,alpha 0.8)
plt.axhline(0,holdNone,colorr,linestyle--,alpha0.8) # 添加y轴参考线
plt.grid()
print(data.head())
print(------)
# 通过折线图查看发展速度 输出 A
2017-06-01 2604.901536
2017-06-02 2387.955402
2017-06-03 1968.693059
2017-06-04 2313.807035
2017-06-05 1441.483332
------A base l_growth z_growth lspeed zspeed
2017-06-01 2604.901536 1000 1604.901536 0.000000 1.604902 NaN
2017-06-02 2387.955402 1000 1387.955402 -216.946134 1.387955 -0.083284
2017-06-03 1968.693059 1000 968.693059 -419.262343 0.968693 -0.175574
2017-06-04 2313.807035 1000 1313.807035 345.113976 1.313807 0.175301
2017-06-05 1441.483332 1000 441.483332 -872.323703 0.441483 -0.377008
------ 转载于:https://www.cnblogs.com/654321cc/p/9581789.html