python公开课第四天

导入工具包

import pandas as pd

import numpy as np

import matplotlib.pyplot as plt​

import seaborn as sb

中文可视化

plt.rcParams[‘font.sans-serif’]=[‘Microsoft YaHei’] # 使图形能够正常显示中文

plt.rcParams[‘font.sans-serif’] = [u’SimHei’]

plt.rcParams[‘axes.unicode_minus’] = False

from matplotlib.font_manager import _rebuild

_rebuild()

中文可视化

plt.rcParams[‘font.sans-serif’]=[‘Microsoft YaHei’] # 使图形能够正常显示中文

plt.rcParams[‘font.sans-serif’] = [u’SimHei’]

plt.rcParams[‘axes.unicode_minus’] = False

from matplotlib.font_manager import _rebuild

_rebuild()

  1. 什么价位的房子多?

    1.1: 读取数据,看看是否有缺失
    1.2: 提取租金
    1.3: 进行可视化

1.1: 读取数据,看看是否有缺失 (地铁线的数据有缺失)

df = pd.read_csv(“ziroom.csv”)

df.head() #默认五行

数据集.isna().any()

df.isna().any()

house_name False
house_located False
house_room False
house_area False
house_price False
subway_info True
dtype: bool

1.2: 提取租金

x = df[“house_price”]

1.3: 进行可视化 (折线图,散点图)

数量的观测 (直方图)plt.hist(数据)

plt.hist(x)

plt.xlabel(“房租”)

plt.ylabel(“个数”)

plt.title(“房租的数量分布”)

plt.show()

2.什么大小的房子多?

2.1: 提取房屋面积
2.2: 进行统计
2.3: 进行可视化

2.1: 提取房屋面积 (查找)

x = df[“house_area”]

2.2: 进行统计 .describe()

df[“house_area”].describe()

count 899.000000
mean 11.462803
std 3.322627
min 5.360000
25% 9.200000
50% 11.100000
75% 13.300000
max 30.900000
Name: house_area, dtype: float64

2.3: 进行可视化 (直方图)

plt.hist(x, edgecolor = “black”)

plt.xlabel(“房子面积大小”)

plt.ylabel(“个数”)

plt.title(“房子面积大小的数量分布”)

plt.show()

  1. 哪条地铁线附近的房子多?

    3.1: 提取所有的地铁数据
    3.2: 提取地铁的名字(去除缺失,去重)
    3.3: 进行可视化

3.1: 提取所有的地铁数据 value_counts()

y = df[‘subway_info’].value_counts()

y

5号线 188
4号线 152
1号线 139
3号线 87
2号线 82
7号线 64
11号线 43
9号线 35
Name: subway_info, dtype: int64

3.2: 提取地铁的名字(去除缺失,去重)

x = df[‘subway_info’].dropna()

x = x.unique()

x

array([‘3号线’, ‘5号线’, ‘7号线’, ‘4号线’, ‘1号线’, ‘9号线’, ‘11号线’, ‘2号线’],
dtype=object)

3.3: 进行可视化 (另一种直方图 bar) plt.bar(x数据 , y数据)

plt.bar(x, y)

plt.xlabel(“地铁线”)

plt.ylabel(“个数”)

plt.title(“地鐵線房子的数量分布”)

plt.show()

  1. 哪个小区的房源最多?

    4.1: 提取所在小区的数据
    4.2: 提取索引
    4.3: 进行可视化

4.1: 提取所在小区的数据

y = df[“house_located”].value_counts()

y

龙岗区 224
南山区 183
龙华区 154
福田区 141
宝安区 106
罗湖区 91
Name: house_located, dtype: int64

4.2: 提取索引

x = df[“house_located”].value_counts().index

x

Index([‘龙岗区’, ‘南山区’, ‘龙华区’, ‘福田区’, ‘宝安区’, ‘罗湖区’], dtype=‘object’)

4.3: 进行可视化

plt.bar(x, y)

plt.show()

  1. 面积跟房租的关系?

    5.1: 提取房租与面积
    5.2: 进行可视化
    5.3: 判断相关性

5.1: 提取房租与面积 『相关性只能计算数字』

df.head()

house_name 	house_located 	house_room 	house_area 	house_price 	subway_info

0 龙园山庄4居室-南卧 罗湖区 4室1厅 15.5 1660 3号线
1 塘朗城广场东区5居室-北卧 南山区 5室1厅 24.0 2230 5号线
2 龙园山庄4居室-南卧 罗湖区 4室1厅 15.0 1830 3号线
3 塘朗城广场东区5居室-南卧 南山区 5室1厅 6.3 1860 5号线
4 桃源村一期4居室-南卧 南山区 4室1厅 7.8 1930 7号线

5.2: 进行可视化

数据集.corrwith(租金数据).plot.bar()

df.corrwith(df.house_price).plot.bar(grid = True)

<matplotlib.axes._subplots.AxesSubplot at 0x11e6bccc0>

5.3: 判断相关性

得知相关性 在 0.4 = 相关系数

  1. 位置跟房租的关系?

    6.1: 提取房租与位置
    6.2: 进行可视化
    6.3: 查看统计数据分布

6.1: 提取房租与位置

df.loc[:, [“列名1, 列名2”] ] 提取两笔数据的方式

df_loacted_price = df.loc[:, [“house_located”, “house_price”]]

横向Series

df_loacted_price.groupby(“群主”)[“要对谁进行操作”].apply(要转换得格式).unstack() # 重新排序

df_loacted_price = df_loacted_price.groupby(“house_located”)[“house_price”].apply(pd.Series.reset_index, drop = True).unstack()

df_loacted_price

0 	1 	2 	3 	4 	5 	6 	7 	8 	9 	... 	214 	215 	216 	217 	218 	219 	220 	221 	222 	223

house_located
南山区 2230.0 1860.0 1930.0 1830.0 2260.0 1460.0 1660.0 2190.0 2090.0 2290.0 … NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
宝安区 2130.0 1790.0 2030.0 1690.0 1790.0 1690.0 1790.0 1790.0 2130.0 2430.0 … NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
福田区 2360.0 2230.0 2990.0 2260.0 2690.0 2360.0 2030.0 2090.0 3490.0 3990.0 … NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
罗湖区 1660.0 1830.0 2260.0 1990.0 1660.0 1830.0 1890.0 1890.0 2230.0 2190.0 … NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
龙华区 1990.0 1890.0 1690.0 1860.0 1830.0 2390.0 1630.0 1990.0 1890.0 1860.0 … NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
龙岗区 1790.0 1790.0 1890.0 1890.0 1890.0 1890.0 1790.0 1890.0 1890.0 1890.0 … 1790.0 2190.0 1390.0 1390.0 1490.0 1560.0 1690.0 1690.0 1790.0 1130.0

6 rows × 224 columns

6.2: 进行可视化

for x in df_loacted_price.values:

xs = [~np.isnan(x)]

推导式

xs = [ x[~np.isnan(x)] for x in df_loacted_price.values]

plt.boxplot(xs)

plt.show()

6.3: 查看统计数据分布

  1. 综合多个角度来看房

    7.1: 多个维度数据 面积,租金,区域,地铁线
    7.2: 进行可视化

7.1: 多个维度数据 面积,租金,区域,地铁线

7.2: 进行可视化

sb.FacetGrid(df, col = ‘地区’, hue = “地铁”, col_wrap= 一排几张图).map(plt.scatter, “面积”, “租金”).add_legend() #側邊欄

sb.FacetGrid(df, col = ‘house_located’, hue = “subway_info”, col_wrap= 3).map(plt.scatter, “house_area”, “house_price”).add_legend()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值