对比分析
概念:两个互相联系的指标进行比较
类型:绝对数比较(相减) 、相对数比较(相除)
其中相对数比较分析也包括:结构分析、比例分析、动态对比分析
1.绝对数比较
a.对比的指标在量级上不能差别过大
b.折线图、柱状图*
#导入数据
data = pd.read_csv('C:\\Users\\zhouchunzhu\\Desktop\\py.test/样例数据02.csv',engine = 'python')
data.head()
(2)折线图比较
data.plot('时间',kind='line',
style = '--.',
alpha = 0.8,
figsize = (10,3),
title = '王者峡谷住房供应成交对比-折线图')
(2)多系列柱状图比较
data.plot('时间',kind = 'bar',
width = 0.8,
alpha = 0.8,
figsize = (10,3),
title = '王者峡谷住房供应成交对比-柱状图')
(3)堆叠图
fig3 = plt.figure(figsize=(10,6))
plt.subplots_adjust(hspace=0.3)
# 创建子图及间隔设置
ax1 = fig3.add_subplot(2,1,1)
x = range(len(data))
y1 = data['住宅新房成交']
y2 = -data['住宅新房供应']
plt.bar(x,y1,width = 1,facecolor = 'yellowgreen')
plt.bar(x,y2,width = 1,facecolor = 'lightskyblue')
plt.title('住宅新房成交供应-堆叠图')
plt.grid()
plt.xticks(range(0,30,6))
ax1.set_xticklabels(data.index[::6])
(4)差值折线图
ax2 = fig3.add_subplot(2,1,2)
y3 = data['住宅新房成交']-data['住宅新房供应']
plt.plot(x,y3,'--go')
plt.axhline(0,color='r',linestyle="--",alpha=0.8) # 添加y轴参考线
plt.grid()
plt.title('住宅新房成交供应-差值折线')
plt.xticks(range(0,30,6))
ax2.set_xticklabels(data.index[::6])
2.相对数比较
a.有联系的指标综合计算后的对比,数值为相对数
b.结构分析、比例分析、空间比较分析、动态对比分析
#导入数据
# 导入数据 → 上半年内五位销售人员月销售额
data = pd.read_csv('C:\\Users\\zhouchunzhu\\Desktop\\py.test/样例数据(销售数据04).csv',engine = 'python')
data
(1)结构分析
在分组基础上,各组总量指标与总体的总量指标对比,计算出各组数量在总量中所占比重,反映总体的内部结构。
# 计算出每天的营收占比
data['熊大_per'] = data['熊大'] / data['熊大'].sum()
data['牛二_per'] = data['牛二'] / data['牛二'].sum()
# 转换为百分数
data['熊大_per%'] = data['熊大_per'].apply(lambda x: '%.2f%%' % (x*100))
data['牛二_per%'] = data['牛二_per'].apply(lambda x: '%.2f%%' % (x*100))
data
#画图
fig,axes = plt.subplots(2,1,figsize = (10,6),sharex=True)
#绝对数比较——熊大和牛二上半年前月度销售额
data[['熊大','牛二']].plot(kind='line',style = '--.',alpha = 0.8,ax=axes[0])
axes[0].legend(loc = 'upper right')
#相对数比较——熊大和牛二上半年前月度销售额
data[['熊大_per','牛二_per']].plot(kind='line',style = '--.',alpha = 0.8,ax=axes[1])
axes[1].legend(loc = 'upper right')
(2)比例分析
a.在分组的基础上,将总体不同部分的指标数值进行对比,其相对指标一般称为“比例相对数”;
b.比例相对数 = 总体中某一部分数值 / 总体中另一部分数值 → “性价比指数”、“租售比”、“性价比”“男女比”…
导入数据
data = pd.read_csv('C:\\Users\\zhouchunzhu\\Desktop\\py.test/样例数据(租金售价).csv',engine = 'python')
data.head()
# 售租比→ 售价租金比
data['售租比'] = data['均价'] / data['租金']
data.head()
data['售租比'].plot.area(color = 'green',alpha = 0.5,ylim = [100,2000],figsize=(8,3),grid=True)
# 创建面积图表达
*(3)动态对比分析(纵向对比分析)
a.同一现象在不同时间上的指标数值进行对比,反应现象的数量随着时间推移而发展变动的程度及趋势;
b.最基本方法,计算动态相对数 → 发展速度;
c.动态相对数(发展速度) = 某一现象的报告期数值 / 同一现象的基期数值;
d.基期:用来比较的基础时期;
e.报告期:所要研究的时期,又称计算期;*
data = pd.DataFrame({'A':np.random.rand(30)*3000+1000},
index = pd.period_range('20200101','20200130'))
print(data.head())
print('------')
# 创建数据 → 30天内A企业的营业收入情况
#设定基期水平,假设为1000
data['基期水平'] = 1000
#累计增长量
data['累计增长量'] = data['A'] - data['基期水平']
#逐期增长量
data['上一期A'] = data.shift(1)['A'] #ata.shift(1) 数据向后平移
data['逐期增长量'] = data['A'] - data.shift(1)['A']
data.fillna(0,inplace=True) # 替换缺失值
data.head()
data[['累计增长量','逐期增长量']].plot(figsize = (10,4),style = '--.',alpha = 0.8,title='A企业30天营业收入增长情况(万)')
plt.axhline(0,color='r',linestyle="--",alpha=0.8) # 添加y轴参考线
plt.legend(loc = 'lower left')
plt.grid()
# 通过折线图查看增长量情况
data['定基增长速度'] = data['累计增长量'] / 1000
data['环比增长速度'] = data['逐期增长量'] / data.shift(1)['A']
data[['定基增长速度','环比增长速度']].plot(figsize = (10,4),style = '--.',alpha = 0.8,title='A企业30天营业收入增长速度')
plt.axhline(0,color='r',linestyle="--",alpha=0.8) # 添加y轴参考线
plt.grid()
print(data.head())
print('------')