数据分析(Python+numpy+pandas+matplotlib分析58同城成都房价)

简单分析一下成都的房价

github博客传送门
博客园传送门

爬虫文件(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

  • 6
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值