ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python数据分析——某地产网站二手房销售数据分析

2020-03-03 12:36:04  阅读:342  来源: 互联网

标签:数据分析 non Python object NaN 二手房 成交 null lianjia


一、数据分析的流程思路

1、明确分析目的和思路/提出假设

2、数据收集

3、数据处理/整理

4、数据分析/验证假设

5、数据展现/可视化图表

6、报告撰写

二、分析目的

  1. 需求01:每平米二手房单价(总价,按月均价)
  2. 需求02:各大区房屋面积总和,降序排序
  3. 需求03:按照周来分析,每一周中的北京市的二手房交易的数量是上涨还是下降趋势,还是基本不变?
  4. 需求04:按照周来分析,每一周的二手房成交的单位均价的走势怎么样?
  5. 需求05:按大区/小区/地区分析平均挂牌周期

三、数据收集

已有某地产网站的数据,存储在csv文件中。

四、数据处理

4.1 引入python数据分析库

import numpy as np #用于常规的数据运算
import pandas as pd  #用于数据分析,包括数据的引入,特征的提取以及数据的清洗转移等
import matplotlib as mpl #用于数据的可视化
import matplotlib.pyplot as plt #方便快速绘制2D图表

4.2 设置绘图中文支持

mpl.rcParams["font.family"] = "SimHei" #设置字体
mpl.rcParams["axes.unicode_minus"]=False # 用来正常显示负号
plt.rcParams['font.sans-serif']=['SimHei'] # 用来正常显示中文标签

% matplotlib inline #将那些用于matplotlib绘制的图显示在页面里而不是弹出一个窗口

4.3 读取数据

lianjia = pd.read_csv("XXXXXXXX.csv",  encoding="utf-8",  sep="\t") # 读取csv文件
pd.set_option("max_colwidth", 60)     # 设置每个字段,最多显示60个字符
pd.set_option("max_columns", 50)      # 设置每个dataframe显示 50个字段
lianjia.head(3) #查看前三行

结果:

成交价(万)	成交时间	所在小区	户型	建筑面积	挂牌价格(万)	成交周期(天)	调价(次)	带看(次)	关注(人)	浏览(次	链家编号	交易权属	挂牌时间	房屋用途	房屋年限	房权所属	房屋户型	所在楼层	户型结构	套内面积(㎡)	建筑类型	房屋朝向	建成年代	装修情况	建筑结构	供暖方式	梯户比例	产权年限	配备电梯	xx1	xx2
0	大兴	NaN	NaN	NaN	NaN	NaN	NaN	NaN	NaN	NaN	NaN	NaN	NaN	NaN	NaN	NaN	NaN	NaN	NaN	NaN	NaN	NaN	NaN	NaN	NaN	NaN	NaN	NaN	NaN	NaN	NaN	NaN
1	297	2019-10-29 成交	格林云墅	3室1厅	89.95	300	608	1.0	4.0	43.0	6424	1.01E+11	商品房	2018/3/1	普通住宅	满两年	非共有	3室1厅1厨1卫	中楼层(共9层)	暂无数据	73.63	塔楼	南 北	2014	精装	钢混结构	集中供暖	一梯两户	70	有	NaN	NaN
2	366	2019-10-29 成交	三羊里	2室1厅	89.79	368	31	0.0	3.0	4.0	118	1.01E+11	商品房	2019/9/29	普通住宅	满两年	非共有	2室1厅1厨1卫	中楼层(共6层)	平层	80.44	板楼	南 北	2009	其他	钢混结构	集中供暖	一梯两户	70	无	NaN	NaN

查看数据整体结构

lianjia.info() #查看数据整体结构

结果:

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 38393 entries, 0 to 38392
Data columns (total 32 columns):
成交价(万)     38393 non-null object
成交时间       38379 non-null object
所在小区       38379 non-null object
户型         38379 non-null object
建筑面积       38379 non-null object
挂牌价格(万)    38379 non-null object
成交周期(天)    38379 non-null object
调价(次)      38379 non-null float64
带看(次)      38379 non-null float64
关注(人)      38379 non-null float64
浏览(次       38379 non-null object
链家编号       38379 non-null object
交易权属       38379 non-null object
挂牌时间       38379 non-null object
房屋用途       38379 non-null object
房屋年限       38379 non-null object
房权所属       38379 non-null object
房屋户型       38379 non-null object
所在楼层       38379 non-null object
户型结构       38379 non-null object
套内面积(㎡)    38379 non-null object
建筑类型       38379 non-null object
房屋朝向       38379 non-null object
建成年代       38379 non-null object
装修情况       38379 non-null object
建筑结构       38379 non-null object
供暖方式       38379 non-null object
梯户比例       38379 non-null object
产权年限       38379 non-null object
配备电梯       38379 non-null object
xx1        3022 non-null object
xx2        3022 non-null object
dtypes: float64(3), object(29)
memory usage: 9.4+ MB

4.4 数据预处理

4.4.1 处理大区

成交价比其他字段非空数据要多,经查看原始表是因为大区存放在这个字段下。下面新增加一个大区字段。

lianjia["大区"] = lianjia["成交价(万)"]    # 把  "成交价(万)"  这个字段的值赋值给  大区  这个字段
lianjia[["大区", "成交价(万)"]].head(10) #查看新增加字段
大区	成交价(万)
0	大兴	大兴
1	297	297
2	366	366
3	226	226
4	548	548
5	245	245
6	254	254
7	193	193
8	280	280
9	347	347

将大区字段中的数字替换为区名

lianjia["大区"] = lianjia["大区"].str.replace("-", "").replace("\d+", np.nan, regex=True) #去掉特殊符号-,将数字替换为nan
lianjia["大区"].fillna(inplace=True, method="ffill") #将空值替换为前面的区名
lianjia.dropna(axis=0, inplace=True, thresh=20) #删除大区nan nan nan这样的行

# 将大区字段挪到第一列
lianjia_daqu = lianjia["大区"]
lianjia.drop("大区", axis=1, inplace=True)
lianjia.insert(0, "大区", lianjia_daqu)
display(lianjia[["大区", "成交时间", "所在小区", "户型", "建筑面积"]].sample(10))#查看结果
        大区	成交时间     	所在小区	        户型	建筑面积
6654	房山	2019-08 成交	碧桂园小区二区	1室0厅	58
15175	门头沟	2019-09 成交	新桥路小区	    2室1厅	51.47
29127	西城	2019-05-12 成交	龙爪槐胡同	    2室1厅	67.36
25210	通州	2019-06 成交	海棠湾一期	    2室2厅	91.07
1797	大兴	2019-07 成交	丽园C区	        3室2厅	141.48
33204	昌平	2019.09.03	    新龙城	        2室1厅	100.2
36054	东城	1905/7/11	    前门东大街	    3室1厅	69.79
5760	朝阳	2019-09-04 成交	富力城D区	    2室1厅	85.04
12756	海淀	2019-09-30 成交	定慧北里	        3室1厅	82.44
32146	亦庄开发区	2017-03-07 成交	荣京丽都	    1室0厅	41.44

4.4.2 处理xx1,xx2

从前面的info列表可以看到xx1,xx2两个字段绝大多数是缺失值

display(lianjia["xx1"].unique())   # 查看xx1去重后的值 
display(lianjia["xx2"].unique())   # 查看xx2去重后的值
array([nan, '70', '40', '50', '未知'], dtype=object)  
array([nan, '有', '无', '暂无数据'], dtype=object)
### 删除 xx1, xx2 这两列
lianjia.drop(axis=1, columns=["xx1", "xx2"], inplace=True) #删除xx1,xx2这两列

所有字段均无缺失值

<class 'pandas.core.frame.DataFrame'>
Int64Index: 35357 entries, 1 to 35369
Data columns (total 31 columns):
大区         35357 non-null object
成交价(万)     35357 non-null object
成交时间       35357 non-null object
所在小区       35357 non-null object
户型         35357 non-null object
建筑面积       35357 non-null object
挂牌价格(万)    35357 non-null object
成交周期(天)    35357 non-null object
调价(次)      35357 non-null float64
带看(次)      35357 non-null float64
关注(人)      35357 non-null float64
浏览(次       35357 non-null object
链家编号       35357 non-null object
交易权属       35357 non-null object
挂牌时间       35357 non-null object
房屋用途       35357 non-null object
房屋年限       35357 non-null object
房权所属       35357 non-null object
房屋户型       35357 non-null object
所在楼层       35357 non-null object
户型结构       35357 non-null object
套内面积(㎡)    35357 non-null object
建筑类型       35357 non-null object
房屋朝向       35357 non-null object
建成年代       35357 non-null object
装修情况       35357 non-null object
建筑结构       35357 non-null object
供暖方式       35357 non-null object
梯户比例       35357 non-null object
产权年限       35357 non-null object
配备电梯       35357 non-null object
dtypes: float64(3), object(28)
memory usage: 8.6+ MB

4.4.3 处理时间

#查看跟日期有关的所有字段
display(lianjia[["成交时间", "成交周期(天)", "挂牌时间"]].sample(10))
display(lianjia[["成交时间", "成交周期(天)", "挂牌时间"]].dtypes)

在这里插入图片描述

# 先把 "成交时间" 这个字段上的  " 成交"  字符串去掉
lianjia["成交时间"] = lianjia["成交时间"].str.replace(" 成交", "")
# 统一时间格式
lianjia["成交时间"] = pd.to_datetime(lianjia["成交时间"])
lianjia["挂牌时间"] = pd.to_datetime(lianjia["挂牌时间"])
# 计算成交周期,并转换为天数
lianjia["成交周期(新)"] = lianjia["成交时间"] - lianjia["挂牌时间"]
lianjia["成交周期(天)"] = lianjia["成交周期(新)"].dt.days
#获取成交时间年、周
lianjia["成交时间(年)"] = lianjia["成交时间"].dt.year
lianjia["成交时间(周)"] = lianjia["成交时间"].dt.week

4.4.4 处理其他字段

lianjia[["大区", "所在小区", "户型", "建筑面积"]].loc[[30922, 32852, 8784, 31629]]
	    大区	    所在小区	        户型	建筑面积
30922	亦庄开发区	林肯公园二期C区	#NAME?	--
32852	昌平	    首开智慧社	    车位	6.99 户型结构
8784	房山	    行宫园一里	    #NAME?	--
31629	亦庄开发区	新海南里      	#NAME?	--
#删除户型为车位的行,并不需要分析车位,而且对应的建筑面积也不规范
lianjia.drop(lianjia[(lianjia["户型"] == "车位")].index, inplace=True)
#删除户型为#NAME?,删除建筑面积为--的行
lianjia.drop(lianjia[(lianjia["户型"] == "#NAME?") | (lianjia["建筑面积"] == "--")].index, inplace=True)
# 建筑面积中文字符和空格变为空,并转换为浮点值
lianjia["建筑面积"] = lianjia["建筑面积"].str.replace("[\s\u4e00-\u9fa5]", "", regex=True)
lianjia["建筑面积"] = lianjia["建筑面积"].astype(np.float32)
lianjia[["成交价(万)", "挂牌价格(万)", "调价(次)", "带看(次)", "关注(人)", "浏览(次"]].sample(10)
        成交价(万)	挂牌价格(万)调价(次)带看(次) 关注(人)浏览(次
10648	290	        290	            0.0	    2.0	    8.0	     288
30125	363	        390	            0.0	    6.0	    14.0	 3680
14244   648   	    680	            0.0	    0.0	    0.0	   暂无数据
21619	209-214 	226	            1.0	    2.0	    3.0	     155
27061	327-334 	355	            1.0	    6.0	    132.0	 1423
4598	499	        480	            0.0	    27.0	42.0	 924
35070	805   	    850	            1.0	    24.0	51.0	 13856
5253	437	        437	            1.0	    46.0	82.0	 962
1369	293-324	    暂无数据   	    0.0	    0.0	    0.0	   暂无数据
12051	586	        600	            1.0   	84.0	55.0	 5399
# 成交价类似293-324,取两个数字的平均值
#函数按照-拆分,如果是一个数字则直接返回该数字,如果是两个数字则计算平均值后返回
def handle(value):
    values2 = str(value).split("-")
    if len(values2) == 1:
        return value
    else:
        result = (float(values2[0]) + float(values2[1])) / 2
        return str(result)

lianjia["成交价(万)"] = lianjia["成交价(万)"].map(handle)    #  调用函数进行映射
lianjia["成交价(万)"] = lianjia["成交价(万)"].astype(np.float32)
#处理
lianjia["挂牌价格(万)"] = lianjia["挂牌价格(万)"].str.replace("暂无数据", "0")
lianjia["浏览(次"] = lianjia["浏览(次"].str.replace("暂无数据", "0")
#转换数据类型
lianjia["挂牌价格(万)"] = lianjia["挂牌价格(万)"].astype(np.float32)
lianjia["成交周期(天)"] = lianjia["成交周期(天)"].astype(np.float32)
lianjia["浏览(次"] = lianjia["浏览(次"].astype(np.float32)
lianjia[[ "链家编号", "交易权属", "房屋用途", "房屋年限"]].sample(10)
        链家编号	   交易权属	房屋用途	 房屋年限
30379	1.01E+11	商品房	普通住宅	 暂无数据
32736	1.01E+11	商品房	普通住宅	 暂无数据
4078	1.01E+11	商品房	普通住宅	 满五年
9624	1.01E+11	商品房	普通住宅	 满五年
7003	1.01E+11	商品房	普通住宅	 满五年
31937	1.01E+11	商品房	公寓	 暂无数据
13796	1.01E+11	商品房	普通住宅	 暂无数据
5560	1.01E+11	已购公房	普通住宅	 满五年
11346	1.01E+11	商品房	普通住宅  满五年
598 	1.01E+11    商品房	普通住宅	 满五年
lianjia[[ "房权所属", "房屋户型", "所在楼层", "户型结构", "套内面积(㎡)"]].sample(10)
        房权所属	房屋户型	    所在楼层  	  户型结构	套内面积(㎡)
29047	非共有	2室2厅1厨1卫	低楼层(共7层)	平层	暂无数据
17853	共有	2室1厅1厨1卫	顶层(共6层)	    平层	暂无数据
29596	暂无数据	2室1厅1厨2卫	中楼层(共19层)	平层	暂无数据
14038	非共有	2室1厅1厨1卫	高楼层(共18层)	暂无数据	暂无数
27348	非共有	1室0厅1厨1卫	中楼层(共26层)	暂无数据	18.53
31512	非共有	2室1厅1厨1卫	中楼层(共6层)	平层	77.18
25027	非共有	1室0厅1厨1卫	低楼层(共7层)	暂无数据	暂无数据
687	    非共有	1室1厅1厨1卫	中楼层(共15层)	平层	46.22
3567	共有	3室1厅1厨1卫	低楼层(共6层)	平层	暂无数据
15897	非共有	1室1厅1厨1卫	底层(共6层)	    平层	暂无数据

#使用相同户型面积填充套内面积
temp_df1 = lianjia[~lianjia["套内面积(㎡)"].str.contains("暂无|建|数")][["房权所属", "房屋户型", "所在楼层",                                  "户型结构", "套内面积(㎡)"]]
temp_df2 = lianjia[lianjia["套内面积(㎡)"].str.contains("暂无|建|数")][["房权所属", "房屋户型", "所在楼层",                                    "户型结构", "套内面积(㎡)"]]
temp_df2["套内面积(㎡)"] = temp_df2["套内面积(㎡)"].replace("暂无数据", np.nan)
temp_df2["套内面积(㎡)"] = temp_df2["套内面积(㎡)"].replace("暂无数", np.nan)
temp_df2["套内面积(㎡)"] = temp_df2["套内面积(㎡)"].replace("\d+\s+.*", np.nan, regex=True)
lianjia_new5 = pd.concat((temp_df1, temp_df2))
lianjia[["房权所属", "房屋户型", "所在楼层",  "户型结构", "套内面积(㎡)"]]  = lianjia_new5[["房权所属",                             "房屋户型", "所在楼层",  "户型结构", "套内面积(㎡)"]]
lianjia[["房权所属", "房屋户型", "所在楼层",  "户型结构", "套内面积(㎡)"]].tail(10)
        房权所属	房屋户型	    所在楼层	     户型结构	套内面积(㎡)
35360	暂无数据	2室1厅1厨1卫	中楼层(共6层)	平层	NaN
35361	非共有	2室2厅1厨1卫	底层(共6层)	    平层	NaN
35362	非共有	3室1厅1厨2卫	高楼层(共21层)	平层	117.11
35363	暂无数据	1室1厅1厨1卫	底层(共5层)	    平层	NaN
35364	非共有	3室1厅1厨1卫	高楼层(共6层)	平层	84.11
35365	暂无数据	3室1厅1厨1卫	高楼层(共6层)	平层	NaN
35366	非共有	1室0厅0厨1卫	低楼层(共28层)	平层	NaN
35367	暂无数据	1室0厅0厨1卫	低楼层(共28层)	平层	NaN
35368	非共有	1室2厅1厨1卫	高楼层(共6层)	平层	NaN
35369	非共有	2室2厅1厨2卫	高楼层(共6层)	平层	NaN
# 类型转换
lianjia["套内面积(㎡)"] = lianjia["套内面积(㎡)"].astype(np.float32)
# 使用每种户型的面积的平均值来进行替换
lianjia["套内面积(㎡)"] = lianjia["套内面积(㎡)"].fillna(
lianjia.groupby("房屋户型")["套内面积(㎡)"].transform("mean"))
lianjia[[ "建筑类型", "房屋朝向", "建成年代", "装修情况", "建筑结构"]].sample(10)
        建筑类型	房屋朝向	建成年代	装修情况	建筑结构
28721	板楼	南 北	1960	简装	混合结构
21679	板楼	南 北	2009	其他	钢混结构
20617	板楼	东 西	2004	简装	混合结构
30381	板楼	南 北	2001	简装	混合结构
32116	板楼	南 北	2013	简装	钢混结构
2539	板楼	南 北	2003	精装	混合结构
15401	板楼	南 北	1980	精装	混合结构
21363	板楼	南 北	2012	简装	钢混结构
13273	板楼	南 北	1996	其他	混合结构
5942	板楼	南 西 北	2007	其他	钢混结构
lianjia[[ "供暖方式", "梯户比例", "产权年限", "配备电梯"]].sample(10)
        供暖方式	梯户比例	产权年限	配备电梯
22469	集中供暖	一梯四户	70	    无
29064	集中供暖	两梯七户	70	    有
23215	集中供暖	一梯三户	70	    无
26982	集中供暖	一梯三户	70	    无
3056	集中供暖	一梯三户	70	    有
25895	集中供暖	一梯两户	70	    无
33206	自供暖	一梯四户	70	    无
31214	自供暖	两梯三户	70	    有
7638	集中供暖	一梯九户	70	    无
23420	集中供暖	一梯三户	70	    无
#产权年限未知的用70填充
lianjia["产权年限"] = lianjia["产权年限"].str.replace("未知", "70")
lianjia["产权年限"] = lianjia["产权年限"].astype(np.int32)
# 删除 成交周期(新) 这个字段
lianjia.drop("成交周期(新)", axis=1, inplace=True)

4.4.5 检查处理后的数据

lianjia.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 34520 entries, 1 to 35369
Data columns (total 34 columns):
大区         34520 non-null object
成交价(万)     34520 non-null float32
成交时间       34520 non-null datetime64[ns]
所在小区       34520 non-null object
户型         34520 non-null object
建筑面积       34520 non-null float32
挂牌价格(万)    34520 non-null float32
成交周期(天)    34520 non-null float32
调价(次)      34520 non-null float64
带看(次)      34520 non-null float64
关注(人)      34520 non-null float64
浏览(次       34520 non-null float32
链家编号       34520 non-null object
交易权属       34520 non-null object
挂牌时间       34520 non-null datetime64[ns]
房屋用途       34520 non-null object
房屋年限       34520 non-null object
房权所属       34520 non-null object
房屋户型       34520 non-null object
所在楼层       34520 non-null object
户型结构       34520 non-null object
套内面积(㎡)    34475 non-null float32
建筑类型       34520 non-null object
房屋朝向       34520 non-null object
建成年代       34520 non-null object
装修情况       34520 non-null object
建筑结构       34520 non-null object
供暖方式       34520 non-null object
梯户比例       34520 non-null object
产权年限       34520 non-null int32
配备电梯       34520 non-null object
成交周期(新)    34520 non-null timedelta64[ns]
成交时间(年)    34520 non-null int64
成交时间(周)    34520 non-null int64
dtypes: datetime64[ns](2), float32(6), float64(3), int32(1), int64(2), object(19), timedelta64[ns](1)
memory usage: 8.3+ MB
lianjia.sample(3)
大区	成交价(万)	成交时间	所在小区	户型	建筑面积	挂牌价格(万)	成交周期(天)	调价(次)	带看(次)	关注(人)	浏览(次	链家编号	交易权属	挂牌时间	房屋用途	房屋年限	房权所属	房屋户型	所在楼层	户型结构	套内面积(㎡)	建筑类型	房屋朝向	建成年代	装修情况	建筑结构	供暖方式	梯户比例	产权年限	配备电梯	成交周期(新)	成交时间(年)	成交时间(周)
17501	门头沟	160.0	2017-12-20	双峪路小区	2室1厅	53.779999	180.0	151.0	1.0	85.0	144.0	8739.0	1.01E+11	商品房	2017-07-22	普通住宅	满两年	非共有	2室1厅1厨1卫	底层(共5层)	平层	38.150002	板楼	南 北	1980	简装	混合结构	集中供暖	一梯三户	70	无	151 days	2017	51
1675	大兴	203.0	2019-07-11	康泰园	1室1厅	60.099998	203.0	492.0	1.0	62.0	192.0	10405.0	1.01E+11	商品房	2018-03-06	普通住宅	暂无数据	非共有	1室1厅1厨1卫	底层(共18层)	平层	46.389999	板楼	南 北	2009	简装	钢混结构	集中供暖	一梯两户	70	有	492 days	2019	28
14601	海淀	938.5	2019-08-01	今日家园	4室1厅	179.509995	1380.0	66.0	1.0	21.0	17.0	842.0	1.01E+11	商品房	2019-05-27	普通住宅	暂无数据	非共有	4室1厅1厨3卫	中楼层(共9层)	跃层	156.351532	板楼	南 北	2000	精装	钢混结构	集中供暖	一梯六户	70	有	66 days	2019	31

五、分析需求

5.1 每平米二手房单价

# 总建筑面积
lianjia["建筑面积"].sum()
2961666.2
# 总成交金额
lianjia["成交价(万)"].sum()
15145877.0
# 计算每平米单价
result = lianjia["成交价(万)"].sum() / lianjia["建筑面积"].sum()
display(str(result) + "万")
'5.1139717万'

5.2 各大区房屋面积总和,降序排序

result_df = lianjia.groupby("大区")["建筑面积"].agg({"建筑面积":"sum"})
result_df = result_df.sort_values("建筑面积", ascending=False)
display(result_df)
	建筑面积
大区	
亦庄开发区	300565.843750
昌平	289278.125000
顺义	286023.375000
房山	259237.218750
大兴	253338.468750
通州	251888.953125
朝阳	247918.687500
海淀	238134.578125
门头沟	230544.812500
丰台	229984.734375
西城	202130.656250
石景山	165606.250000
其他(平谷密云怀柔延庆)	7014.509766

5.3 每周的北京市的二手房交易的数量变化?

result_df = lianjia.groupby(["成交时间(年)","成交时间(周)"]).size()
display(result_df.loc[2019].head(60))
成交时间(周)
1      459
2      110
3      144
4      157
5      283
6        1
7       46
8      104
9      620
10     190
11     176
12     151
13     171
14     690
15     270
16     286
17     292
18    1252
19     365
20     445
21     439
22    1642
23     418
24     470
25     486
26     651
27    1625
28     602
29     700
30     913
31    2432
32     660
33     733
34     769
35    2596
36     956
37    1007
38     994
39    1229
40    1541
41     861
42     988
43    1157
44     508
dtype: int64
year = 2019
mpl.rcParams["font.size"] = 12
plt.figure(figsize=(12,6))
plt.bar(result_df.loc[year].index, result_df.loc[year].values)
plt.xticks(result_df.loc[year].index)
plt.yticks(np.linspace(0, 2750, 20))
font = {"family":"Kaiti",
       "style":"oblique",
        "weight":"normal",
        "color":"green",
        "size": 20
       }
plt.xlabel("周", fontdict=font)
plt.ylabel("成交数", fontdict=font)
plt.grid(axis="y", color="g", ls=":", lw=1)
plt.title(str(year) + "年北京市各周二手房成交量", fontdict=font, color= "r")

在这里插入图片描述成交量在每四周左右会有一个大幅上涨。有可能是在月初或者月末的时间点,需要进一步探查。

5.4 每周的二手房成交的单位均价的走势

result_df = lianjia.groupby(["成交时间(年)","成交时间(周)"])[["成交价(万)", "建筑面积"]].agg({"成交价(万)":"sum", "建筑面积":"sum"})
result_df["单位均价"] = result_df["成交价(万)"] / result_df["建筑面积"]
display(result_df.loc[2019].head(60))
year = 2019
mpl.rcParams["font.size"] = 12
plt.figure(figsize=(12,6))
plt.plot(result_df.loc[year].index, result_df.loc[year]["单位均价"])

在这里插入图片描述
单位均价程上升趋势,到20周后保持平稳。

result_df2= lianjia.groupby(["成交时间(年)","成交时间(周)"])["成交周期(天)"].agg(
{"成交周期(天)":"mean"})
display(result_df2.loc[2019].head(60))
year = 2019

mpl.rcParams["font.size"] = 12

plt.figure(figsize=(12,6))

plt.bar(result_df2.loc[year].index, result_df2.loc[year]["成交周期(天)"])

plt.xticks(result_df.loc[year].index)
plt.yticks(np.linspace(0, 225, 10))
font = {"family":"Kaiti",
       "style":"oblique",
        "weight":"normal",
        "color":"green",
        "size": 20
       }
plt.xlabel("周", fontdict=font)
plt.ylabel("成交周期(天)", fontdict=font)
plt.grid(axis="y", color="g", ls=":", lw=1)
plt.title(str(year) + "年北京市各周二手房成交周期", fontdict=font, color= "r")

在这里插入图片描述
第6、18、22、27、31、35、40周成交周期较长还需进一步分析

???Iris??� 发布了1 篇原创文章 · 获赞 0 · 访问量 13 私信 关注

标签:数据分析,non,Python,object,NaN,二手房,成交,null,lianjia
来源: https://blog.csdn.net/Lady_Stark/article/details/104608192

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有