Bootstrap

【python】Pandas数据分析之链家数据分析案例 建议在Jupyter Notebook 中运行

建议在Jupyter Notebook 中运行
jupyter notebook环境搭建

@[TOC]```
import numpy as np
import pandas as pd

import matplotlib.pyplot as plt
plt.rcParams[‘font.sans-serif’] = [‘SimHei’] # 正常显示汉字
plt.rcParams[‘axes.unicode_minus’] = False # 正常显示负号

import os
os.chdir(r’D:\hm\homework\pywork\workProject\numpyProject’)




# 1.加载数据 修改列名 查看数据结构

1.加载数据

df = pd.read_csv(‘./data/LJdata.csv’)
df.head()

df.columns = [‘district’, ‘address’, ‘title’, ‘house_type’, ‘area’, ‘price’, ‘floor’, ‘build_time’, ‘direction’, ‘update_time’, ‘view_num’, ‘extra_info’, ‘link’]
df.columns

df.head()




数据集

print(df.shape)
print(df.info())
print(df.describe())




# 2.数据的统计分析



## 1.找到租金最高最低的房子

df[‘price’].max()
df.price.min()

df[df.price == 1300]
df[df.price == 210000]

通过sort_values()

df.sort_values(‘price’).head(1) # 升序排列 价格最低
df.sort_values(‘price’).tail(1) # 升序排列 价格最高

通过 nlargest() 和 nsmallest() 实现

df.nsmallest(1,‘price’) # 租金最低
df.nlargest(1,‘price’) # 租金最高


## 2. 找到最近新上的10套

sort_values 排序 + head()

df.sort_values(‘update_time’,ascending= False).head(10)




## 3.查看所有的更新时间

unique()

df.update_time.unique() # 去重
df.update_time.drop_duplicates() # series drop_duplicates()
df.groupby(‘update_time’, as_index = False).district.count().update_time # 分组
df.drop_duplicates(‘update_time’).update_time # datafarme 的 drop_duplicates()




## 4.看房人数

最小值

df.view_num.min()

最大值

df.view_num.max()

中位数

df.view_num.median()

df.describe()




## 5.不同看房人数的房源数量

tmp_df = df.groupby(‘view_num’,as_index=False).district .count()
tmp_df

图表展示

tmp_df[‘district’].plot(kind = ‘bar’,figsize = (20,10))




## 6.房租的价格分布

平均值

df.price.max()
df.price.min()
df.price.median()
df.price.std()
df.price.var()




## 7.看房人数最多的朝向

tmp_df = df.groupby(‘direction’).view_num.sum()


## 8.找到看房人数最多的朝向

tmp_df[tmp_df.view_num == tmp_df.view_num.max()]

tmp_df.sort_values(‘view_num’,ascending = False).head(1)




## 9.房型分布情况

统计各种房型 分别有多少套

tmp_df = df.groupby(‘direction’).district.count()
tmp_df.plot(kind = ‘bar’,figsize=(20,10))




## 10.最受欢迎的房型

df.groupby(‘house_type’)[‘view_num’].sum() # series 对象
df.groupby(‘house_type’)[[‘view_num’]].sum() # df 对象
df.groupby(‘house_type’)[[‘view_num’]].sum().nlargest(1,‘view_num’)

设置分组列 不作为索引列


## 11.房屋的平均租房价格

一 总价格 / 总面积

df.price.sum() / df.area.sum()

二 计算每套房子的 每平米的租金 计算所有房子 租金/平米 的平均值

df[‘price_m2’] = df.price / df.area

df.price_m2.mean()




## 12.热门小区

df.groupby(‘address’)[[‘view_num’]].sum().nlargest(10,‘view_num’)

出租房源最多的小区

找到每个小区的房源数量

df.groupby(‘address’,as_index= False).district.count().sort_values(‘district’, ascending= False).head(1)

df.groupby(‘address’,as_index= False).district.count().nlargest(1,‘district’)

df.address.value_counts().head(1)



悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;