详解Python对某地区二手房房价数据分析
作者:李好秀 时间:2022-04-07 04:47:30
目录
房价数据分析
数据简单清洗
各区均价分析
全市二手房装修程度分析
各区二手房数量所占比比例
热门户型均价分析
总结
房价数据分析
数据简单清洗
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 = 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,y
area, areaName = get_proportional_quantity()
title = '各区二手房数量所占比比例'
proportional_quantity_pie(area, areaName, title)
热门户型均价分析
# 获取各区热门户型分析,根据需求,,进一步处理数据,如果要写相应算法,需要根据算法所需求的数据处理
def get_hot_portal():
# 另外一种方法获取并取值
"""
group = data.groupby('户型').size # 将房子区域分组
sort_data = 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.index
y = 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)
前面三个图较简单,最后相对于前面三个较为麻烦
先获取得到热门户型前五名,通过户型得到对应的户型的平均值
总结
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!
来源:https://www.cnblogs.com/lehoso/p/15634923.html
标签:Python,数据,分析,房价
0
投稿
猜你喜欢
Python实现简单飞机大战
2022-11-11 17:39:11
element使用自定义icon图标的两种解决方式
2023-07-02 16:55:05
MySQL从命令行导入SQL脚本时出现中文乱码的解决方法
2024-01-27 11:04:46
Django auth 应用模块详解
2023-05-20 11:17:17
Python enumerate()计数器简化循环
2022-07-31 22:15:43
一文详解kubernetes 中资源分配的那些事
2024-05-22 17:47:57
php+mysqli数据库连接的两种方式
2023-10-08 22:15:16
MySQL5.7.23解压版安装教程图文详解
2024-01-15 18:19:27
手把手教你用python抢票回家过年(代码简单)
2023-07-13 22:46:02
mysql 8.0.22 zip压缩包版(免安装)下载、安装配置步骤详解
2024-01-15 21:19:16
python之关于数组和列表的区别及说明
2021-07-29 17:35:31
python机器学习sklearn实现识别数字
2023-08-18 17:57:19
解决pyCharm中 module 调用失败的问题
2022-11-27 23:21:19
python科学计算之scipy——optimize用法
2022-03-14 03:59:44
Bootstrap进度条学习使用
2024-04-18 09:28:31
如何实现让每句话的头一个字母都大写?
2010-05-24 18:26:00
解决Mysql报Invalid default value for ''operate_time''错误的问题
2024-01-14 08:42:16
Yahoo发布一款FireFox网站开发插件
2007-09-23 16:11:00
可插入图片的TEXT文本框
2024-02-25 20:07:36
Vue中watch使用方法详解
2024-04-30 10:40:45