详解Python对某地区二手房房价数据分析

作者:李好秀 时间:2022-04-07 04:47:30 

目录
  • 房价数据分析

    • 数据简单清洗

    • 各区均价分析

    • 全市二手房装修程度分析

    • 各区二手房数量所占比比例

    • 热门户型均价分析

  • 总结

    房价数据分析

    数据简单清洗

    data.csv

    详解Python对某地区二手房房价数据分析

    数据显示


    # 导入模块
    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)  # 将将建筑面积转换为浮点类型

    详解Python对某地区二手房房价数据分析

    各区均价分析


    # 获取各区二手房均价分析,根据需求,,进一步处理数据,如果要写相应算法,需要根据算法所需求的数据处理
    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)

    运行如图

    详解Python对某地区二手房房价数据分析

    全市二手房装修程度分析


    # 获取各区二手房均价分析,根据需求,,进一步处理数据,如果要写相应算法,需要根据算法所需求的数据处理
    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)

    详解Python对某地区二手房房价数据分析

    各区二手房数量所占比比例


    # 获取各区二手房各区比例数量,进一步处理数据,如果要写相应算法,需要根据算法所需求的数据处理
    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)

    详解Python对某地区二手房房价数据分析

    热门户型均价分析


    # 获取各区热门户型分析,根据需求,,进一步处理数据,如果要写相应算法,需要根据算法所需求的数据处理
    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)

    前面三个图较简单,最后相对于前面三个较为麻烦

    先获取得到热门户型前五名,通过户型得到对应的户型的平均值

    详解Python对某地区二手房房价数据分析

    总结

    本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!

    来源:https://www.cnblogs.com/lehoso/p/15634923.html

    标签:Python,数据,分析,房价
    0
    投稿

    猜你喜欢

  • Python编程之gui程序实现简单文件浏览器代码

    2021-08-20 11:09:36
  • javascript同步服务器时间和同步倒计时小技巧

    2023-08-27 22:10:58
  • 详解Python编程中对Monkey Patch猴子补丁开发方式的运用

    2021-04-15 00:17:15
  • python3实现UDP协议的服务器和客户端

    2022-07-01 09:17:08
  • python中的生成器、迭代器、装饰器详解

    2022-03-01 20:36:46
  • python中的实例方法、静态方法、类方法、类变量和实例变量浅析

    2021-11-06 01:52:14
  • python简单鼠标自动点击某区域的实例

    2021-03-05 16:35:52
  • python 提取key 为中文的json 串方法

    2022-02-08 04:55:06
  • Redis持久化机制实现原理和流程

    2021-03-22 00:43:39
  • OBJECTPROPERTY与sp_rename更改对象名称的介绍

    2012-01-29 18:04:39
  • Web 设计:实现干净代码的12条定律

    2008-12-04 13:27:00
  • python中datetime模块中strftime/strptime函数的使用

    2023-11-15 15:02:46
  • PHP实现根据数组某个键值大小进行排序的方法

    2023-11-15 00:35:55
  • php文件下载后无法打开的处理方案及代码

    2023-06-13 19:12:03
  • matplotlib绘制折线图的基本配置(万能模板案例)

    2022-09-06 18:06:17
  • 简单易懂Pytorch实战实例VGG深度网络

    2021-09-07 19:47:24
  • asp显示数据库中表名、字段名、字段内容

    2008-06-17 18:09:00
  • Python中字符串的基本使用详解

    2022-08-13 07:05:42
  • 微信小程序wx.request拦截 器使用详解

    2023-07-22 09:11:55
  • python中Lambda表达式详解

    2021-12-06 22:40:26
  • asp之家 网络编程 m.aspxhome.com