#画一手分销的单数与业绩
#增加'总单数'和'总业绩两列'
fx_df['总单数']=fx_df.一手分销ctm单数+fx_df.一手分销ptm单数
fx_df['总业绩']=fx_df.一手分销ctm业绩+fx_df.一手分销ptm业绩
import matplotlib.pyplot as plt
import matplotlib
matplotlib.rcParams['font.sans-serif']=['SimHei']
matplotlib.rcParams['axes.unicode_minus']=False
plt.figure(figsize=(16,6.5),dpi=300)
plt.subplot(211)
plt.bar(range(len(fx_df.index)),fx_df.一手分销ctm单数,
color='dodgerblue',alpha=0.5,bottom=0,label='一手分销ctm单数')
plt.bar(range(len(fx_df.index)),fx_df.一手分销ptm单数,
color='deepskyblue',bottom=fx_df.一手分销ctm单数,label='一手分销ptm单数')
plt.xticks(ticks=range(len(fx_df.index)),\
labels=[str(d1.year)+'年'+str(d1.month)+'月' for d1 in netp_zy.index],\
fontsize=10)
plt.yticks(ticks=range(0,20,5))
plt.legend(loc='upper left',fontsize=10)
for x,y in zip(range(len(fx_df.index)),fx_df.总单数):
plt.text(x,y+1,int(y),va='center',ha='center',fontsize=10)
plt.ylabel('单数')
plt.title('一手分销单数与业绩',fontsize=12)
plt.subplot(212)
plt.bar(range(len(fx_df.index)),fx_df.一手分销ctm业绩,
color='dodgerblue',alpha=0.5,bottom=0,label='一手分销ctm业绩')
plt.bar(range(len(fx_df.index)),fx_df.一手分销ptm业绩,
color='deepskyblue',bottom=fx_df.一手分销ctm业绩,label='一手分销ptm业绩')
plt.xticks(ticks=range(len(fx_df.index)),\
labels=[str(d1.year)+'年'+str(d1.month)+'月' for d1 in netp_zy.index],\
fontsize=10)
plt.yticks(ticks=range(0,450001,100000))
plt.legend(loc='upper left',fontsize=10)
for x,y in zip(range(len(fx_df.index)),fx_df.总业绩):
plt.text(x,y+8000,int(y),va='center',ha='center',fontsize=10)
plt.xlabel('月份')
plt.ylabel('业绩')
plt.show()
#画我要房产的单数与业绩
#增加'总单数'和'总业绩两列'
wy_df['总单数']=wy_df.我要房产ctm单数+wy_df.我要房产ptm单数
wy_df['总业绩']=wy_df.我要房产ctm业绩+wy_df.我要房产ptm业绩
import matplotlib.pyplot as plt
import matplotlib
matplotlib.rcParams['font.sans-serif']=['SimHei']
matplotlib.rcParams['axes.unicode_minus']=False
plt.figure(figsize=(16,6.5),dpi=300)
plt.subplot(211)
plt.bar(range(len(wy_df.index)),wy_df.我要房产ctm单数,
color='dodgerblue',alpha=0.5,bottom=0,label='我要房产ctm单数')
plt.bar(range(len(wy_df.index)),wy_df.我要房产ptm单数,
color='deepskyblue',bottom=wy_df.我要房产ctm单数,label='我要房产ptm单数')
plt.xticks(ticks=range(len(wy_df.index)),\
labels=[str(d1.year)+'年'+str(d1.month)+'月' for d1 in netp_zy.index],\
fontsize=10)
plt.yticks(ticks=range(5))
plt.legend(loc='upper left',fontsize=10)
for x,y in zip(range(len(wy_df.index)),wy_df.总单数):
plt.text(x,y+0.2,int(y),va='center',ha='center',fontsize=10)
plt.ylabel('单数')
plt.title('我要房产单数与业绩',fontsize=12)
plt.subplot(212)
plt.bar(range(len(wy_df.index)),wy_df.我要房产ctm业绩,
color='dodgerblue',alpha=0.5,bottom=0,label='我要房产ctm业绩')
plt.bar(range(len(wy_df.index)),wy_df.我要房产ptm业绩,
color='deepskyblue',bottom=wy_df.我要房产ctm业绩,label='我要房产ptm业绩')
plt.xticks(ticks=range(len(wy_df.index)),\
labels=[str(d1.year)+'年'+str(d1.month)+'月' for d1 in netp_zy.index],\
fontsize=10)
plt.yticks(ticks=range(0,80001,20000))
plt.legend(loc='upper left',fontsize=10)
for x,y in zip(range(len(wy_df.index)),wy_df.总业绩):
plt.text(x,y+1000,int(y),va='center',ha='center',fontsize=10)
plt.xlabel('月份')
plt.ylabel('业绩')
plt.show()
#画房多多的单数与业绩
#增加'总单数'和'总业绩两列'
fdd_df['总单数']=fdd_df.房多多ctm单数+fdd_df.房多多ptm单数
fdd_df['总业绩']=fdd_df.房多多ctm业绩+fdd_df.房多多ptm业绩
import matplotlib.pyplot as plt
import matplotlib
matplotlib.rcParams['font.sans-serif']=['SimHei']
matplotlib.rcParams['axes.unicode_minus']=False
plt.figure(figsize=(16,6.5),dpi=300)
plt.subplot(211)
plt.bar(range(len(fdd_df.index)),fdd_df.房多多ctm单数,
color='dodgerblue',alpha=0.5,bottom=0,label='房多多ctm单数')
plt.bar(range(len(fdd_df.index)),fdd_df.房多多ptm单数,
color='deepskyblue',bottom=fdd_df.房多多ctm单数,label='房多多ptm单数')
plt.xticks(ticks=range(len(fdd_df.index)),\
labels=[str(d1.year)+'年'+str(d1.month)+'月' for d1 in netp_zy.index],\
fontsize=10)
plt.ylim([0,fdd_df.房多多ctm单数.max()+5])
plt.legend(loc='upper left',fontsize=10)
for x,y in zip(range(len(fdd_df.index)),fdd_df.总单数):
plt.text(x,y+0.2,int(y),va='center',ha='center',fontsize=10)
plt.ylabel('单数')
plt.title('房多多单数与业绩',fontsize=12)
plt.subplot(212)
plt.bar(range(len(fdd_df.index)),fdd_df.房多多ctm业绩,
color='dodgerblue',alpha=0.5,bottom=0,label='房多多ctm业绩')
plt.bar(range(len(fdd_df.index)),fdd_df.房多多ptm业绩,
color='deepskyblue',bottom=fdd_df.房多多ctm业绩,label='房多多ptm业绩')
plt.xticks(ticks=range(len(fdd_df.index)),\
labels=[str(d1.year)+'年'+str(d1.month)+'月' for d1 in netp_zy.index],\
fontsize=10)
plt.ylim([0,fdd_df.房多多ctm业绩.max()+10000])
plt.legend(loc='upper left',fontsize=10)
for x,y in zip(range(len(fdd_df.index)),fdd_df.总业绩):
plt.text(x,y+5000,int(y),va='center',ha='center',fontsize=10)
plt.xlabel('月份')
plt.ylabel('业绩')
plt.show()
'''##########四.房源成交偏好'''
#1.2019年4月CTM租售总价/租金分布、面积分布
'''#4.1CTM买卖成交房源总价分布'''
import datetime
ctmdf=ctmdeal[ctmdeal.月份==datetime.date(noww.year,noww.month-1,1)]
ctmdf_s=ctmdf[(ctmdf.成交类型=='买卖')&(ctmdf.成交区董!='孙举双')]
ctmdf_s['price_group']=pd.cut(ctmdf_s[['Root Id','成交金额']].\
drop_duplicates()['成交金额'],bins=[0,1500000,2000000,2500000,3500000,5000000\
,7000000,10000000,1000000000],labels=['150万以下','150万-200万'\
,'200万-250万','250万-350万','350万-500万',\
'500万-700万','700万-1000万','1000万以上'])
plt.figure(figsize=(16,6.5),dpi=300)
ctmdf_s[['Root Id','price_group']].drop_duplicates()['price_group'].value_counts()\
.sort_index().plot(kind='bar',color='dodgerblue')
plt.ylim([0,ctmdf_s[['Root Id','price_group']].drop_duplicates()['price_group'].value_counts().values.max()+10])
for x,y in zip(range(ctmdf_s[['Root Id','price_group']].\
drop_duplicates()['price_group'].count()),\
ctmdf_s[['Root Id','price_group']].drop_duplicates()['price_group'].\
value_counts().sort_index().values):
plt.text(x,y+2,str(y)+' ,'+'%.0f%%' % (round(y/ctmdf_s[['Root Id','price_group']].\
drop_duplicates()['price_group'].count(),2)*100),ha='center',va='center',fontsize=10)
plt.xticks(rotation=360,fontsize=10)
plt.title('2019年'+str(noww.month-1)+'月网络CTM(买卖成交)-房源总价分布',fontsize=12)
plt.xlabel('总价区间')
plt.ylabel('单数')
plt.show()
'''#4.2二手租赁成交房源租金分布'''
ctmdf_r=ctmdf[ctmdf.成交类型=='租赁']
ctmdf_r=ctmdf_r[(ctmdf_r.成交区董!='孙举双')]
ctmdf_r['rent_group']=pd.cut(ctmdf_r[['Root Id','成交金额']].\
drop_duplicates()['成交金额'],bins=[0,1000,2000,3000,5000,8000\
,10000,30000,50000,100000,1000000],labels=['1千以下','1千-2千',\
'2千-3千','3千-5千','5千-8千',\
'8千-1万','1万-3万','3万-5万',\
'5万-10万','10万以上'])
plt.figure(figsize=(16,6.5),dpi=300)
ctmdf_r[['Root Id','rent_group']].drop_duplicates()['rent_group'].value_counts()\
.sort_index().plot(kind='bar',color='dodgerblue')
plt.ylim([0,ctmdf_r[['Root Id','rent_group']].drop_duplicates()['rent_group'].value_counts().max()+10])
for x,y in zip(range(ctmdf_r[['Root Id','rent_group']].\
drop_duplicates()['rent_group'].count()),\
ctmdf_r[['Root Id','rent_group']].drop_duplicates()['rent_group'].\
value_counts().sort_index().values):
plt.text(x,y+2,str(y)+' ,'+'%.0f%%' % (round(y/ctmdf_r[['Root Id','rent_group']].\
drop_duplicates()['rent_group'].count(),2)*100),ha='center',\
va='center',fontsize=10)
plt.xticks(rotation=360,fontsize=10)
plt.title('2019年'+str(noww.month-1)+'月网络CTM(租赁成交)-房源租金分布',fontsize=12)
plt.xlabel('租金区间')
plt.ylabel('单数')
plt.show()
'''#4.3 2019年3月CTM二手买卖成交房源面积分布'''
ctmdf_s['mianji_group']=pd.cut(ctmdf_s['成交面积'],bins=\
[0,50,100,150,200,250,300,350,500,5000],labels=\
['50平以下','50平-100平','100平-150平','150平-200平','200平-250平',\
'250平-300平','300平-350平','350平-500平','500平以上'])
plt.figure(figsize=(16,6.5),dpi=300)
ershou_mianji=ctmdf_s[['Root Id','mianji_group']].drop_duplicates()['mianji_group'].\
value_counts().sort_index()
ershou_mianji.plot(kind='bar',color='dodgerblue')
plt.title('2019年'+str(noww.month-1)+'月网络CTM(买卖成交)-面积分布',fontsize=12)
plt.xlabel('面积区间')
plt.ylabel('成交单数')
for x,y in zip(range(len(ershou_mianji.index)),ershou_mianji.values):
plt.text(x,y+3,str(y)+' ,'+'%.0f%%' % (round(y/ctmdf_s[['Root Id','mianji_group']].\
drop_duplicates()['mianji_group'].count(),2)*100),\
fontsize=10,va='center',ha='center')
plt.xticks(ticks=range(len(ershou_mianji.index)),\
labels=ershou_mianji.index,rotation=360,fontsize=10)
plt.show()
'''#4.4 2019年3月CTM二手租赁成交房源面积分布'''
ctmdf_r['mianji_group']=pd.cut(ctmdf_r['成交面积'],bins=\
[0,50,100,150,200,250,300,350,500,5000],labels=\
['50平以下','50平-100平','100平-150平','150平-200平','200平-250平',\
'250平-300平','300平-350平','350平-500平','500平以上'])
plt.figure(figsize=(16,6.5),dpi=300)
ershou_mianji=ctmdf_r[['Root Id','mianji_group']].drop_duplicates()['mianji_group'].\
value_counts().sort_index()
ershou_mianji.plot(kind='bar',color='dodgerblue')
plt.title('2019年'+str(noww.month-1)+'月网络CTM(租赁成交)-面积分布',fontsize=12)
plt.xlabel('面积区间')
plt.ylabel('成交单数')
for x,y in zip(range(len(ershou_mianji.index)),ershou_mianji.values):
plt.text(x,y+3,str(y)+' ,'+'%.0f%%' % (round(y/ctmdf_r[['Root Id','mianji_group']].\
drop_duplicates()['mianji_group'].count(),2)*100),\
fontsize=10,va='center',ha='center')
plt.xticks(ticks=range(len(ershou_mianji.index)),\
labels=ershou_mianji.index,rotation=360,fontsize=10)
plt.show()
'''#4.5.2019年3月CTM租售总价top20单'''
#2019年3月CTM二手买卖成交总价最高的20单
estate20price=ctmdf_s[['成交金额','楼盘名称','Root Id','成交区董']].drop_duplicates().\
sort_values(by='成交金额',ascending=False).reset_index()\
[['楼盘名称','成交区董','成交金额']].head(20)
print('\n2019年'+str(noww.month-1)+'月网络CTM二手买卖成交-总价最高的20单:\n\n',estate20price)
#2019年3月CTM二手租赁成交租金最高的20单
estate20zujin=ctmdf_r[['成交金额','楼盘名称','Root Id','成交区董']].drop_duplicates().\
sort_values(by='成交金额',ascending=False).reset_index()\
[['楼盘名称','成交区董','成交金额']].head(20)
print('\n2019年'+str(noww.month-1)+'月CTM二手租赁成交-租金最高的20单:\n\n',estate20zujin)
#2019年3月CTM二手买卖成交业绩最高的20单
estate20yeji=ctmdf_s[['CTM业绩','楼盘名称','Root Id','成交区董']].drop_duplicates().\
sort_values(by='CTM业绩',ascending=False).reset_index()\
[['楼盘名称','成交区董','CTM业绩']].head(20)
print('\n2019年'+str(noww.month-1)+'月网络CTM二手买卖成交-业绩最高的20单:\n\n',estate20yeji)
'''4.6#2019年3月CTM二手买卖&租赁成交单数最多的20个小区'''
xqsmost=ctmdf_s.reset_index()[['楼盘名称','Root Id','成交区董']].drop_duplicates()\
['楼盘名称'].value_counts()
xqsmost=xqsmost.sort_values(ascending=False).head(20)
xqrmost=ctmdf_r.reset_index()[['楼盘名称','Root Id','成交区董']].drop_duplicates()\
['楼盘名称'].value_counts()
xqrmost=xqrmost.sort_values(ascending=False).head(20)
print('\n2019年'+str(noww.month-1)+'月网络CTM二手买卖成交单数最多的小区top20:\n\n',xqsmost)
print('\n2019年'+str(noww.month-1)+'月网络CTM二手租赁成交单数最多的小区top20:\n\n',xqrmost)
'''4.7#2019年3月CTM二手买卖成交面积最高&最低的20单'''
xqtop_mianji=ctmdf_s.reset_index()[['Root Id','楼盘名称','成交面积','成交区董']].\
drop_duplicates().sort_values(by=['成交面积'],ascending=False).head(20)\
[['楼盘名称','成交区董','成交面积']]
print('\n2019年'+str(noww.month-1)+'月网络CTM二手买卖成交-面积最高的20单:\n\n',\
xqtop_mianji)
xqbottom_mianji=ctmdf_s.reset_index()[['Root Id','楼盘名称','成交面积','成交区董']].\
drop_duplicates().sort_values(by=['成交面积'],ascending=True).head(20)\
[['楼盘名称','成交区董','成交面积']]
print('\n2019年'+str(noww.month-1)+'月网络CTM二手买卖成交-面积最低的20单:\n\n',\
xqbottom_mianji)
'''4.8#2019年3月CTM二手买卖成交面积与金额相关性'''
corr_mj_price=ctmdf_s.reset_index()[['成交金额','成交面积']].drop_duplicates()
plt.figure(figsize=(16,7),dpi=300)
plt.scatter(corr_mj_price['成交面积'],corr_mj_price['成交金额'],color='r')
plt.annotate('相关系数为 %s' % format(corr_mj_price['成交面积'].\
corr(corr_mj_price['成交金额'],method='spearman'),'.2f'),\
xy=(250,1.0e+07),color='m',fontsize=15)
plt.title('\n2019年'+str(noww.month-1)+'月网络CTM买卖成交房源--面积&总价的相关程度',fontsize=16)
plt.xlabel('房源面积')
plt.ylabel('房源总价')
plt.show()
#大战区总单数、业绩按面积分布情况
import datetime
nowtime=datetime.datetime.now()
previous_month=datetime.date(nowtime.year,nowtime.month-1,1)
dazhan_ctm=ctmdeal[(ctmdeal.月份==str(previous_month))&(ctmdeal.成交网站=='中原网')]
dazhan_ctm['mianji_gp']=pd.cut(dazhan_ctm['成交面积'],bins=\
[0,50,100,150,200,250,300,350,500,5000],labels=\
['50平以下','50平-100平','100平-150平','150平-200平','200平-250平',\
'250平-300平','300平-350平','350平-500平','500平以上'])
dazhan_ctm['price_gp']=pd.cut(dazhan_ctm[['Root Id','成交金额']].\
drop_duplicates()['成交金额'],bins=[0,1000,2000,3000,5000,8000,10000,30000,\
50000,100000,1500000,2000000,2500000,3500000,5000000,7000000,\
10000000,1000000000],labels=['1千以下','1千-2千',\
'2千-3千','3千-5千','5千-8千',\
'8千-1万','1万-3万','3万-5万',\
'5万-10万','150万以下',\
'150万-200万','200万-250万',\
'250万-350万','350万-500万',\
'500万-700万','700万-1000万','1000万以上'])
dazhan_mj_ctm=dazhan_ctm[['Root Id','mianji_gp','CTM业绩']].\
drop_duplicates().groupby(['mianji_gp']).agg({'Root Id':len,'CTM业绩':sum}).fillna(0)
dazhan_mj_ctm=dazhan_mj_ctm.rename(columns={'CTM业绩':'总业绩','Root Id':'单数'})
dazhan_price_ctm=dazhan_ctm[['Root Id','price_gp','CTM业绩']].\
drop_duplicates().groupby(['price_gp']).agg({'Root Id':len,'CTM业绩':sum}).fillna(0)
dazhan_mj_ctm=dazhan_mj_ctm.rename(columns={'CTM业绩':'总业绩','Root Id':'单数'})
dazhan_price_ctm=dazhan_price_ctm.rename(columns={'CTM业绩':'总业绩','Root Id':'单数'})
#ptm
dazhan_ptm=ptmdeal[ptmdeal.成交网站=='中原网']
dazhan_ptm['mianji_gp']=pd.cut(dazhan_ptm['面积'],bins=\
[0,50,100,150,200,250,300,350,500,5000],labels=\
['50平以下','50平-100平','100平-150平','150平-200平','200平-250平',\
'250平-300平','300平-350平','350平-500平','500平以上'])
dazhan_ptm['price_gp']=pd.cut(dazhan_ptm[['成交编号','总价']].\
drop_duplicates()['总价'],bins=[0,1000,2000,3000,5000,8000,10000,30000,\
50000,100000,1500000,2000000,2500000,3500000,5000000,7000000,\
10000000,1000000000],labels=['1千以下','1千-2千',\
'2千-3千','3千-5千','5千-8千',\
'8千-1万','1万-3万','3万-5万',\
'5万-10万','150万以下',\
'150万-200万','200万-250万',\
'250万-350万','350万-500万',\
'500万-700万','700万-1000万','1000万以上'])
dazhan_mj_ptm=dazhan_ptm[['成交编号','总业绩','mianji_gp']].\
drop_duplicates().groupby(['mianji_gp']).agg({'成交编号':len,'总业绩':sum}).fillna(0)
dazhan_mj_ptm=dazhan_mj_ptm.rename(columns={'成交编号':'单数'})
dazhan_price_ptm=dazhan_ptm[['成交编号','总业绩','price_gp']].\
drop_duplicates().groupby(['price_gp']).agg({'成交编号':len,'总业绩':sum}).fillna(0)
dazhan_price_ptm=dazhan_price_ptm.rename(columns={'成交编号':'单数'})
#导出
import datetime
dazhan_mj_yeji=pd.concat([dazhan_mj_ctm,dazhan_mj_ptm],join='outer').groupby(['mianji_gp']).sum()
dazhan_mj_yeji.to_excel(r'd:\Users\zhanggl21\Desktop\%s中原网分面积段总单数与总业绩.xlsx' \
%(str(datetime.datetime.now().year)\
+'年'+str(datetime.datetime.now().month-1)+'月'))
dazhan_price_yeji=pd.concat([dazhan_price_ctm,dazhan_price_ptm],\
join='outer').groupby(['price_gp']).sum()
dazhan_price_yeji.to_excel(r'd:\Users\zhanggl21\Desktop\%s中原网分价格段总单数与总业绩.xlsx'\
%(str(datetime.datetime.now().year)\
+'年'+str(datetime.datetime.now().month-1)+'月'))
#CTM整体数据(中原网VS全公司)
zy_df=ctmdeal[(ctmdeal.月份=='2019-10-01')&(ctmdeal.成交网站=='中原网')]
print('中原网CTM分租售的单数和业绩为:\n',zy_df\
[['Root Id','成交类型','CTM业绩']].drop_duplicates().\
groupby(['成交类型']).agg({'Root Id':len,'CTM业绩':sum}))
print('中原网CTM分租售的最大最小业绩\n',zy_df\
[['Root Id','成交类型','CTM业绩']].drop_duplicates().\
groupby(['成交类型'])['CTM业绩'].agg([max,min]))