月度成交分析报告-python代码3


#画一手分销的单数与业绩
#增加'总单数'和'总业绩两列'
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]))

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值