一、数据分析的流程思路

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 valueelse:result = (float(values2[0]) + float(values2[1])) / 2return 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 = 2019mpl.rcParams["font.size"] = 12plt.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周成交周期较长还需进一步分析

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

  1. python药店销售数据分析_Python:某医院药品销售数据分析

    数据分析步骤: 提出问题-理解数据-数据清洗-构建模型-数据可视化 下面就拿2018年朝阳医院销售数据按上述步骤进行分析. 1.提出问题 根据拿到的销售数据字段信息,我们对以下三个业务指标进行分析 . ...

  2. python数据分析实验报告_Python数据分析综合小练习:销售数据分析

    有这样一个小小的练习题: 卖电子商品的老板,每天记录了自己卖出的U盘,电脑支架,插座,电池,音箱,鼠标,usb数据线,手机充电线等数量,客户的需求是一方面,也可以通过客户购买关联性比较强的商品进行引导 ...

  3. 月均数据_药品销售数据分析案例

    今天用python去做一个简单的药品销售数据分析案例 一.数据分析的目的 数据分析是指用适当的统计分析方法对收集来的大量数据进行分析,提取有用信息和形成结论而对数据加以详细研究和概括总结的过程. 本篇 ...

  4. 销售数据分析怎么做?这篇文章说清楚了

    如何分析销售数据?分析销售数据有哪些指标?销售数据分析有什么作用? 销售数据是不是得通过数据分析软件啊? 本文将为您解答疑惑-- 一.分析销售数据的指标 从两个层面上来讲,一个是对销售情况的整体把控, ...

  5. Python网络爬虫实战:天猫胸罩销售数据分析

    本文实现一个非常有趣的项目,这个项目是关于胸罩销售数据分析的.是网络爬虫和数据分析的综合应用项目.本项目会从天猫抓取胸罩销售数据,并将这些数据保存到SQLite数据库中,然后对数据进行清洗,最后通过S ...

  6. Python网络爬虫实战:根据天猫胸罩销售数据分析中国女性胸部大小分布

    Python网络爬虫实战:根据天猫胸罩销售数据分析中国女性胸部大小分布 本文实现一个非常有趣的项目,这个项目是关于胸罩销售数据分析的.是网络爬虫和数据分析的综合应用项目.本项目会从天猫抓取胸罩销售数据 ...

  7. python药店销售数据分析_解析医院药店销售数据,看看Python数据分析结果有什么惊人的发现|python基础教程|python入门|python教程...

    https://www.xin3721.com/eschool/pythonxin3721/ 前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时 ...

  8. python上海房价数据分析统计服_(干货)数据分析案例--以上海二手房为例

    如果你手上有一批数据,你可能应用统计学.挖掘算法.可视化方法等技术玩转你的数据,但你没有数据的时候,我该怎么玩呢?接下来就带着大家玩玩没有数据情况下的数据分析. 本文从如下几个目录详细讲解数据分析的流 ...

  9. python商品数据分析可视化系统(带爬虫)京东销售数据分析 计算机毕业设计 源码下载

    python商品数据分析可视化系统(带爬虫)京东销售数据分析 一.开发技术 pycharm.MySQL数据库/sqlite3数据库.Python3.x版本.Django框架 二.功能 用户注册.登录. ...

最新文章

  1. python 流程控制语句
  2. 深度学习原来还可以这么学!
  3. 从测试的角度来重新反思我们自己的程序以及我们的程序员之路——“通过追本溯源来进行前瞻性思考”...
  4. 【.net 深呼吸】在运行阶段修改应用配置文件
  5. ubuntu/deepin常用软件清单(都是使用sudo apt-get install安装方式)
  6. 洛谷 - P4015 运输问题(费用流)
  7. 数字图像处理(拓展)
  8. 比较abc大小的java_比较abc大小java
  9. 如何使用IIS重写模块将HTTP重定向到HTTPS
  10. # ; @REM !等符号在WINCE6.0下的意义和作用
  11. Android平台SQLite快速入门“.NET研究”实践
  12. 实现透明防火墙的必备知识-Bridge Filter半景
  13. IP地址与子网掩码划分的心得
  14. 二元函数极限知识点总结
  15. Andorid 方法数超过64K的问题
  16. 老男孩教育 | 5分钟带你搞懂日志采集利器Filebeat!
  17. topojson转换与应用
  18. PHP文件上传接口(带参数)
  19. 顺丰快递单号要怎么快速查询物流并导出信息
  20. editplus里python技巧_editplus调试python

热门文章

  1. 【git】(task1)git基础和常用命令
  2. 【W-Sharing】后疫情时代,实用高效的UI共享服务工具
  3. .net4.6.1运行时安装说明(win7,win10)
  4. Win32位程序(64位系统)文件对话框的文件重定向问题
  5. 替换输入的密码为星号【C语言】
  6. 【调剂】南京邮电大学2023年硕士研究生招生拟接收调剂专业预告(一)
  7. 燃气灶电气线路图及原理_燃气灶脉冲点火器原理
  8. 网易 C++设计模式课件
  9. [BZOJ5224]毁灭
  10. Github入门指南