详解Python对某地区二手房房价数据分析
目录
- 房价数据分析
- 数据简单清洗
- 各区均价分析
- 全市二手房装修程度分析
- 各区二手房数量所占比比例
- 热门户型均价分析
- 总结
房价数据分析
数据简单清洗
【详解Python对某地区二手房房价数据分析】
data.csv
文章图片
数据显示
# 导入模块import pandas as pd# 导入数据统计模块import matplotlib# 导入图表模块import matplotlib.pyplot as plt# 导入绘图模块# 避免中文乱码matplotlib.rcParams['font.sans-serif'] = ['SimHei']# 设置字体为SimHei显示中文matplotlib.rcParams['axes.unicode_minus'] = False# 设置正常显示字符,使用rc配置文件来自定义# 简单清洗data = https://www.it610.com/article/pd.read_csv('data.csv')# 读取csv数据del data['Unnamed: 0']# 将索引列删除data.dropna(axis=0, how='any', inplace=True)# 删除data数据中的所有空值data['单价'] = data['单价'].map(lambda d: d.replace('元/平米', ''))# 将单价“元/平米”去掉data['单价'] = data['单价'].astype(float)# 将房子单价转换为浮点类型,float(data['',单价])data['总价'] = data['总价'].map(lambda d: d.replace('万', ''))# 将总价“万”去掉data['总价'] = data['总价'].astype(float)# 将房子总价转换为浮点类型,float(data['',单价])data['建筑面积'] = data['建筑面积'].map(lambda p: p.replace('平米', ''))# 将建筑面积“平米去掉”data['建筑面积'] = data['建筑面积'].astype(float)# 将将建筑面积转换为浮点类型
文章图片
各区均价分析
# 获取各区二手房均价分析,根据需求,,进一步处理数据,如果要写相应算法,需要根据算法所需求的数据处理def get_average_price():group = data.groupby('区域')# 将房子区域分组average_price_group = group['单价'].mean()# 计算每个区域的均价,average_price_group字典x = average_price_group.index# 区域y = average_price_group.values.astype(int)# 区域对应的均价a =['t':'123'] a.keys()return x, y# 返回区域与对应的均价,region二关 average_price均价# 显示均价条形图def average_price_bar(x, y, title):plt.figure()# 图形画布plt.bar(x, y, alpha=0.8)# 绘制条形图plt.xlabel("区域")# 区域文字plt.ylabel("均价")# 均价文字plt.title(title)# 表标题文字# 为每一个图形加数值标签for x, y in enumerate(y):plt.text(x, y + 100, y, ha='center')plt.show()if __name__ == '__main__':x, y = get_average_price()title = '各区均价分析'average_price_bar(x, y, title)
运行如图
文章图片
全市二手房装修程度分析
# 获取各区二手房均价分析,根据需求,,进一步处理数据,如果要写相应算法,需要根据算法所需求的数据处理def get_decorate_sum():group = data.groupby('装修')# 将房子区域分组# decorate_sum_group = group['装修'].count()# 计算每个区域的均价,average_price_group字典decorate_sum_group = group.size()# 计算每个区域的均价,average_price_group字典x = decorate_sum_group.index# 区域y = decorate_sum_group.values.astype(int)# 区域对应的均价a =['t':'123'] a.keys()return x, y# 返回区域与对应的均价,region二关 average_price均价# 显示均价条形图def average_price_bar(x, y, title):plt.figure()# 图形画布plt.bar(x, y, alpha=0.8)# 绘制条形图plt.xlabel("装修类型")# 区域文字plt.ylabel("数量")# 均价文字plt.title(title)# 表标题文字# 为每一个图形加数值标签for x, y in enumerate(y):plt.text(x, y + 100, y, ha='center')plt.show()if __name__ == '__main__':x, y = get_decorate_sum()title = '全市二手房装修程度分析'average_price_bar(x, y, title)
文章图片
各区二手房数量所占比比例
# 获取各区二手房各区比例数量,进一步处理数据,如果要写相应算法,需要根据算法所需求的数据处理def get_proportional_quantity():area = data['区域'].groupby(data['区域']).count()# 将房子区域分组比例数量areaName = (area).index.values# 将房子区域分组比例取名return area, areaName# 显示均价条形图def proportional_quantity_pie(area, areaName, title):plt.figure()# 图形画布plt.pie(area, labels=areaName, labeldistance=1.1, autopct='%.1f%%',shadow=True, startangle=90, pctdistance=0.7)plt.title(title, fontsize=24)# 表标题文字plt.legend(bbox_to_anchor=(-0.1, 1))# 作者标题plt.show()if __name__ == '__main__':# 对应x,yarea, areaName = get_proportional_quantity()title = '各区二手房数量所占比比例'proportional_quantity_pie(area, areaName, title)
文章图片
热门户型均价分析
# 获取各区热门户型分析,根据需求,,进一步处理数据,如果要写相应算法,需要根据算法所需求的数据处理def get_hot_portal():# 另外一种方法获取并取值"""group = data.groupby('户型').size# 将房子区域分组sort_data = https://www.it610.com/article/group.sort_values(ascending=False)# 将户型分组数量进行降序five_data = sort_data.head()# 提取前5组户型数据house_type_mean = data.groupby('户型')['单价'].mean().astype(int)# 计算每个户型的均价x = house_type_mean[five_data.index].index# 户型y = house_type_mean[five_data.index].value# 户型对应的均价"""group = data.groupby('户型')# 将房子区域分组a = group['户型'].count().sort_values(ascending=False).head()# 计算每个户型的均价 字典b = group['单价'].mean()[a.index]# 区域对应的均价a =['t':'123'] a.keys()x = b.indexy = b.values.astype(int)return x, y# 返回区域与对应的均价,region二关 average_price均价# 显示均价横条形图def hot_portal_barh(x, y, title):plt.figure()# 图形画布plt.barh(x, y, alpha=0.9, color='red')# 绘制条形图plt.xlabel("均价")# 区域文字plt.ylabel("户型")# 均价文字plt.title(title)# 表标题文字plt.xlim(0, 15000)# X轴的大小# 为每一个图形加数值标签for y, x in enumerate(y):plt.text(x + 100, y, str(x) + '元', ha='left')plt.show()if __name__ == '__main__':x, y = get_hot_portal()title = '热门户型均价分析'hot_portal_barh(x, y, title)
前面三个图较简单,最后相对于前面三个较为麻烦
先获取得到热门户型前五名,通过户型得到对应的户型的平均值
文章图片
总结
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!
推荐阅读
- 布丽吉特,人生绝对的赢家
- 进必趋|进必趋 退必迟,问起对 视勿移
- 对称加密和非对称加密的区别
- python学习之|python学习之 实现QQ自动发送消息
- 对抗抑郁最好的方法
- 逻辑回归的理解与python示例
- 装聋作哑,关系融洽
- 社保代缴公司服务费包含哪些
- Java|Java OpenCV图像处理之SIFT角点检测详解
- C语言浮点函数中的modf和fmod详解