随着我国房地产业的迅速发展,城市可供开发的土地越来越少,二手房交易日趋活跃,蕴藏着广阔的发展空间与极大的发展潜力。由于二手房市场情况比较复杂,如何快速且科学地为二手房定价一直是众多学者研究的重要课题,它不仅能保障二手房交易双方有效地推进业务,实现交易双方的利益最大化,还能为二手房市场的长期健康发展奠定坚实的基础。 本次实验,请你先对成都地区的二手房数据进行简单统计分析。
实验要求:仅使用python内置函数、标准库以及csv模块完成以下内容。
-
统计成都每一个市辖区的二手房数量,按照二手房数量从大到小排列,输出二手房数量最多的前5个市辖区以及相应的二手房数量;
-
在1)的基础上,计算前5个市辖区二手房房价的最高单价、平均单价、最低单价, 并按平均单价从大到小的排序输出;
-
输出上述市辖区的二手房统计信息。输出格式:成都市{市辖区}区
有{n}套二手房,二手房房价的最高单价、平均单价、最低单价分别为:{xx.xx}、{xx.xx}、{xx.xx}。
import pandas as pd # 读取csv文件
import matplotlib.pyplot as plt # 画图
import numpy as np
import matplotlib.image as mpimg
from wordcloud import WordCloud
# 解决中文显示问题
plt.rcParams['font.sans-serif'] = ['SimHei'] # 显示中文标签 # 指定默认字体
plt.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题
# 读取csv数据
df = pd.read_csv('chengdu.csv')
#统计成都每一个市辖区的二手房数量,按照二手房数量从大到小排列,输出二手房数量最多的前5个市辖区以及相应的二手房数量
Count=df['房屋所属市辖区'].value_counts().sort_values(ascending=False)
#绘制词云图
ComName_list=df['房屋所属市辖区'].values.tolist()
ComName_str=' '.join(ComName_list)
stopwords=[]
image=mpimg.imread('heart.jpg')
wc=WordCloud(scale=3,background_color="white",max_words=1000,width=800,height=500,font_path='msyh.ttc',stopwords=stopwords,mask=image)
wc.generate_from_text(ComName_str)
wc.to_file('二手房.png')
wc.to_image()
#在1)的基础上,计算前5个市辖区二手房房价的最高单价、平均单价、最低单价, 并按平均单价从大到小的排序输出
class Test:
def __init__(self,name,max1,min1,ave1,count1):
self.name=name
self.max1=max1;
self.min1=min1
self.ave1=ave1
self.count1=count1
def __lt__(self, other): #自定义排序函数
if self.ave1 > other.ave1:
return True
else:
return False
show=[]
for key,value in Count.head(5).items():
max1=np.max(df['单价(元/平方米)'][df['房屋所属市辖区']==key].tolist())
min1=np.min(df['单价(元/平方米)'][df['房屋所属市辖区']==key].tolist())
ave1=np.mean(df['单价(元/平方米)'][df['房屋所属市辖区']==key].tolist())
ans=Test(key,max1,min1,ave1,value)
show.append(ans)
show=sorted(show)
for i in show:
print("成都市{",i.name,"区}区有{",i.count1,"}套二手房,二手房房价的最高单价、平均单价、最低单价分别为:{",'%.2f'%i.max1,"}、{",'%.2f'%i.ave1,"}、{",'%.2f'%i.min1,"}")