zoukankan      html  css  js  c++  java
  • 数据分析(Python+numpy+pandas+matplotlib分析58同城成都房价)

    简单分析一下成都的房价

    github博客传送门
    csdn博客传送门

    爬虫文件(Python实现)-爬取的数据文件(txt文件,空格分隔)-分析的文件(Python实现)-简单的分析结果图(png图4张) 资源链接地址:https://download.csdn.net/download/zhanghao3389/10686953

    本章所需知识:

    爬虫页面链接:https://blog.csdn.net/zhanghao3389/article/details/82843244

    接下来上代码:

    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    
    data = pd.read_csv('58.csv', encoding='gbk')  # 导入当前文件夹下的58.csv数据文件
    print(data.head())  # 查看前5行
    print(data.tail())  # 查看后5行
    data.info()  # 查看数据信息
    print(data.describe())  # 统计学指标查看数据概要
    
    # # 处理缺失数据
    # data['单价/每平米'].fillna('无', inplace=True)
    # data['面积/每平米'].fillna('无', inplace=True)
    # data['总价/万'].fillna('无', inplace=True)
    
    print(data['地区'].unique())  # 打印出地区唯一化后的值
    print(len(data['地区'].unique()))  # 打印出地区唯一化后的个数
    
    print(data['地区'].value_counts())  # 对每个地区的数量进行统计
    print(data.groupby('地区')['单价/每平米'].mean().sort_values(ascending=False))  # 单价平均值
    print(data.groupby('地区')['面积/平方米'].mean().sort_values(ascending=False))  # 面积平均值
    print(data.groupby('地区')['总价/万'].mean().sort_values(ascending=False))  # 总价平均值
    
    '''['郫县' '成都' '成都周边' '都江堰' '双流' '温江' '新都' '龙泉驿' '金牛' '高新西区' '武侯' '成华' '青羊' '锦江' '高新区' '天府新区']'''
    
    # 解决matplotlib图标无法显示中文的情况
    from pylab import mpl
    
    mpl.rcParams['font.sans-serif'] = ['FangSong']  # 指定默认字体  # 调节matplotlib支持中文字体
    mpl.rcParams['axes.unicode_minus'] = False  # 解决保存图像是负号'-'显示不了的问题
    
    # 数据离散化 单价
    bins1 = np.array([0, 5000, 10000, 15000, 20000, 25000, 30000, 55000])
    data_ls1 = pd.cut(data['单价/每平米'], bins1)  # bins1离散化数组 data_ls1 离散化数据
    
    # 数据离散化 总价
    bins2 = np.array([0, 40, 80, 150, 250, 500, 2000])
    data_ls2 = pd.cut(data['总价/万'], bins2)  # bins2离散化数组 data_ls2 离散化数据
    
    # 数据离散化 面积
    bins3 = np.array([0, 50, 75, 100, 125, 150, 175, 200, 300, 1500])
    data_ls3 = pd.cut(data['面积/平方米'], bins3)  # bins3离散化数组 data_ls3 离散化数据
    
    # 数据透视表
    # 使用数据透视表方法pivot_table 需要计算的列明 柱状图下标     离散化数据区间      聚合函数 统计
    table = data.pivot_table('面积/平方米', index='地区', columns=data_ls1, aggfunc='count')
    table.plot(kind='bar', stacked=True)  # 表数据画图 bar柱状图 stacked重叠 开
    plt.show()
    
    # 画一个柱状图
    table2 = data.pivot_table('总价/万', index='地区', columns=data_ls2, aggfunc='count')
    table2.plot(kind='bar', stacked=True)
    plt.show()
    
    # 画一个柱状图
    table3 = data.pivot_table('面积/平方米', index='地区', columns=data_ls3, aggfunc='count')
    table3.plot(kind='bar', stacked=True)
    plt.show()
    
    # 画一个饼图(展示各地区房子在售比例)
    count1 = data['地区'].value_counts()
    plt.axes(aspect=1)  # 画一个单位圆
    plt.pie(x=dict(count1).values(), labels=dict(count1).keys(), autopct='%3.1f %%', shadow=True, startangle=90)
    plt.show()
    

    爬虫页面链接:https://blog.csdn.net/zhanghao3389/article/details/82843244

    程序运行状态图:
    1
    2

  • 相关阅读:
    Java修改excel内容
    text标签onchang事件
    shh将数据导出excel
    正则表达式0到200以内的数
    虚拟内存与物理内存
    捕获内核的异常事件
    linux内存(三)内核与用户空间交互
    linux内存(二)高端内存
    linux内存(一) 内核空间与用户空间
    使用tc配置后端设备,来限制虚拟机网卡带宽
  • 原文地址:https://www.cnblogs.com/Mrzhang3389/p/9703672.html
Copyright © 2011-2022 走看看