ML之FE:对爬取的某平台二手房数据进行数据分析以及特征工程处理(一)

对爬取的某平台二手房数据进行数据分析以及特征工程处理


Crawl:利用bs4和requests爬取了国内*某房源平台(2020年7月2日上海二手房)将近30*100多条数据并进行房价分析以及预测

ML之FE:对爬取的某平台二手房数据进行数据分析以及特征工程处理实现代码https://yunyaniu.blog.csdn.net/article/details/107318135


1、定义数据集

<class 'pandas.core.frame.DataFrame'>

 total_price unit_price roomtype   height direction decorate     area  \

0        290万  46186元/平米     2室1厅  高楼层/共6层         南    平层/简装  62.79平米  

1        599万  76924元/平米     2室1厅  低楼层/共6层         南    平层/精装  77.87平米  

2        420万  51458元/平米     2室1厅  低楼层/共6层       南 北    平层/精装  81.62平米  

3      269.9万  34831元/平米     2室2厅  低楼层/共6层         南    平层/精装  77.49平米  

4        383万  79051元/平米     1室1厅  中楼层/共6层         南    平层/精装  48.45平米  

     age    garden district            id  Unnamed: 11  total_price_Num  \

0  1993.0      国和一村       杨浦  107102693322          NaN            290.0  

1  2005.0  虹康花苑(三期)       长宁  107102590033          NaN            599.0  

2  1995.0      纪念小区       虹口  107102469522          NaN            420.0  

3  2009.0      新凯二期       松江  107102187832          NaN            269.9  

4  1996.0      白浪新村       闵行  107102568627          NaN            383.0  

  unit_price_Num  area_Num  

0           46186     62.79  

1           76924     77.87  

2           51458     81.62  

3           34831     77.49  

4           79051     48.45  

    total_price unit_price roomtype    height direction decorate     area  \

2995        230万  43144元/平米     1室1厅  低楼层/共11层         南    平层/简装  53.31平米  

2996        372万  75016元/平米     1室1厅  低楼层/共11层         南    平层/精装  49.59平米  

2997        366万  49973元/平米     2室1厅   中楼层/共6层         南    平层/简装  73.24平米  

2998        365万  69103元/平米     2室1厅  低楼层/共17层         北    平层/精装  52.82平米  

2999        420万  49412元/平米     2室2厅  低楼层/共14层       南 北    平层/精装     85平米  

        age garden district            id  Unnamed: 11  total_price_Num  \

2995  2010.0   南新东园       浦东  107102716551          NaN            230.0  

2996  2006.0   九歌上郡       闵行  107102716557          NaN            372.0  

2997  1995.0   高境一村       宝山  107102716802          NaN            366.0  

2998  1990.0  遵义西大楼       长宁  107102716833          NaN            365.0  

2999  2011.0   象屿名城       松江  107102717793          NaN            420.0  

     unit_price_Num  area_Num  

2995           43144     53.31  

2996           75016     49.59  

2997           49973     73.24  

2998           69103     52.82  

2999           49412     85.00  

<class 'pandas.core.frame.DataFrame'>

Int64Index: 3000 entries, 0 to 2999

Data columns (total 15 columns):

total_price        3000 non-null object

unit_price         3000 non-null object

roomtype           3000 non-null object

height             3000 non-null object

direction          3000 non-null object

decorate           3000 non-null object

area               3000 non-null object

age                2888 non-null float64

garden             3000 non-null object

district           3000 non-null object

id                 3000 non-null int64

Unnamed: 11        0 non-null float64

total_price_Num    3000 non-null float64

unit_price_Num     3000 non-null int64

area_Num           3000 non-null float64

dtypes: float64(4), int64(2), object(9)

memory usage: 375.0+ KB

None

              age            id  Unnamed: 11  total_price_Num  \

count  2888.000000  3.000000e+03          0.0      3000.000000  

mean   2001.453601  1.070999e+11          NaN       631.953450  

std       9.112425  1.535036e+07          NaN       631.308855  

min    1911.000000  1.070000e+11          NaN        90.000000  

25%    1996.000000  1.071020e+11          NaN       300.000000  

50%    2003.000000  1.071026e+11          NaN       437.000000  

75%    2008.000000  1.071027e+11          NaN       738.000000  

max    2018.000000  1.071027e+11          NaN      9800.000000  

      unit_price_Num     area_Num  

count     3000.000000  3000.000000  

mean     58939.028333   102.180667  

std      25867.208297    62.211662  

min      11443.000000    17.050000  

25%      40267.500000    67.285000  

50%      54946.000000    89.230000  

75%      73681.250000   119.035000  

max     250813.000000   801.140000  

数据集维度: (3000, 15)

数据集所有字段: Index(['total_price', 'unit_price', 'roomtype', 'height', 'direction',

      'decorate', 'area', 'age', 'garden', 'district', 'id', 'Unnamed: 11',

      'total_price_Num', 'unit_price_Num', 'area_Num'],

     dtype='object')

统计字段名及其对应长度: roomtype 22

['2室1厅' '2室2厅' '1室1厅' '3室2厅' '1室0厅' '3室1厅' '2室0厅' '1室2厅' '4室3厅' '5室2厅'

'4室2厅' '5室3厅' '3室0厅' '5室1厅' '5室4厅' '6室4厅' '6室2厅' '6室3厅' '7室2厅' '9室6厅'

'3室3厅' '4室1厅']

roomtype字段下所有类别     对应数量

2室2厅    751

3室2厅    706

2室1厅    622

1室1厅    323

4室2厅    192

3室1厅    174

1室0厅     47

1室2厅     37

2室0厅     37

5室2厅     35

4室3厅     25

5室3厅     17

6室2厅      9

6室3厅      5

5室1厅      5

3室3厅      4

3室0厅      3

5室4厅      3

4室1厅      2

6室4厅      1

7室2厅      1

9室6厅      1

Name: roomtype, dtype: int64

统计字段名及其对应长度: height 138

['高楼层/共6层' '低楼层/共6层' '中楼层/共6层' '高楼层/共18层' '低楼层/共9层' '中楼层/共5层' '高楼层/共11层'

'高楼层/共4层' '高楼层/共32层' '中楼层/共7层' '高楼层/共30层' '中楼层/共12层' '中楼层/共24层' '低楼层/共4层'

'低楼层/共5层' '中楼层/共13层' '中楼层/共11层' '低楼层/共7层' '高楼层/共8层' '中楼层/共18层' '中楼层/共14层'

'低楼层/共17层' '中楼层/共30层' '低楼层/共18层' '高楼层/共13层' '中楼层/共31层' '中楼层/共29层'

'独栋/共2层' '高楼层/共29层' '低楼层/共30层' '低楼层/共15层' '高楼层/共28层' '联排/共3层' '中楼层/共8层'

'中楼层/共56层' '低楼层/共16层' '低楼层/共56层' '低楼层/共32层' '高楼层/共7层' '高楼层/共5层' '中楼层/共9层'

'高楼层/共33层' '高楼层/共22层' '低楼层/共26层' '中楼层/共35层' '低楼层/共23层' '低楼层/共35层'

'中楼层/共19层' '中楼层/共17层' '高楼层/共31层' '低楼层/共38层' '低楼层/共28层' '低楼层/共22层'

'低楼层/共24层' '中楼层/共16层' '高楼层/共25层' '低楼层/共14层' '双拼/共2层' '中楼层/共4层' '高楼层/共17层'

'低楼层/共34层' '中楼层/共28层' '高楼层/共24层' '中楼层/共20层' '低楼层/共12层' '高楼层/共16层'

'中楼层/共25层' '联排/共1层' '中楼层/共15层' '高楼层/共34层' '低楼层/共49层' '中楼层/共10层'

'低楼层/共11层' '高楼层/共14层' '中楼层/共21层' '中楼层/共32层' '共3层' '中楼层/共38层' '共1层'

'低楼层/共19层' '中楼层/共22层' '中楼层/共33层' '低楼层/共13层' '低楼层/共20层' '高楼层/共12层'

'中楼层/共37层' '高楼层/共15层' '低楼层/共25层' '低楼层/共31层' '高楼层/共26层' '高楼层/共9层' '双拼/共3层'

'低楼层/共33层' '高楼层/共20层' '高楼层/共40层' '低楼层/共21层' '低楼层/共10层' '上叠别墅/共4层'

'低楼层/共2层' '低楼层/共8层' '低楼层/共61层' '中楼层/共59层' '高楼层/共36层' '中楼层/共27层'

'下叠别墅/共6层' '高楼层/共10层' '高楼层/共27层' '高楼层/共21层' '低楼层/共3层' '高楼层/共37层'

'高楼层/共49层' '低楼层/共27层' '高楼层/共19层' '中楼层/共34层' '低楼层/共1层' '高楼层/共35层'

'低楼层/共43层' '低楼层/共51层' '中楼层/共39层' '低楼层/共29层' '中楼层/共36层' '高楼层/共43层'

'联排/共2层' '中楼层/共23层' '独栋/共3层' '高楼层/共23层' '高楼层/共39层' '共2层' '高楼层/共38层'

'高楼层/共45层' '中楼层/共63层' '中楼层/共26层' '下叠别墅/共5层' '下叠别墅/共3层' '下叠别墅/共4层'

'低楼层/共37层' '低楼层/共41层' '高楼层/共58层']

height字段下所有类别     对应数量

高楼层/共6层     557

中楼层/共6层     335

低楼层/共6层     260

中楼层/共5层      90

低楼层/共18层     84

高楼层/共18层     75

中楼层/共11层     65

中楼层/共18层     65

中楼层/共14层     57

低楼层/共14层     56

低楼层/共11层     51

高楼层/共5层      50

高楼层/共11层     47

高楼层/共7层      43

中楼层/共7层      43

中楼层/共17层     36

中楼层/共8层      35

低楼层/共24层     33

中楼层/共24层     32

低楼层/共7层      31

低楼层/共12层     30

高楼层/共14层     27

低楼层/共16层     26

高楼层/共16层     25

低楼层/共15层     24

中楼层/共12层     24

低楼层/共17层     24

高楼层/共12层     24

低楼层/共5层      21

低楼层/共13层     19

          ...

低楼层/共38层      3

高楼层/共23层      3

共1层           2

高楼层/共40层      2

高楼层/共36层      2

高楼层/共49层      2

独栋/共3层        2

低楼层/共49层      2

上叠别墅/共4层      2

共2层           2

高楼层/共10层      2

中楼层/共56层      2

低楼层/共37层      2

低楼层/共2层       1

高楼层/共45层      1

下叠别墅/共6层      1

下叠别墅/共3层      1

双拼/共2层        1

低楼层/共41层      1

低楼层/共51层      1

下叠别墅/共5层      1

高楼层/共39层      1

联排/共2层        1

高楼层/共43层      1

中楼层/共63层      1

高楼层/共58层      1

中楼层/共59层      1

中楼层/共36层      1

低楼层/共61层      1

低楼层/共56层      1

Name: height, Length: 138, dtype: int64

统计字段名及其对应长度: direction 34

['南' '南 北' '东南' '东 南' '北 西北' '东北' '西' '西南' '东南 南' '南 西南' '东' '南 西 北' '西 东'

'东 东南' '北' '南 西' '东 西' '北 南' '西南 西北' '暂无数据' '东 北' '东南 西北' '西北' '东南 西'

'东北 南 北' '东 南 北' '西 东北' '南 东南' '南 北 东 东南' '南 东' '南 北 西' '西 北 南' '西 北'

'东南 南 西北 北']

direction字段下所有类别     对应数量

南            2131

南 北           653

东南             50

西南             46

西              19

东              13

北              12

南 西             8

东南 南            7

北 南             7

南 西南            6

东北              5

东 南             5

暂无数据            5

南 西 北           4

西 东             3

东 东南            3

西北              3

东 西             3

东 北             2

北 西北            2

西 北 南           1

南 北 西           1

东南 南 西北 北       1

南 东南            1

西 东北            1

南 东             1

东南 西北           1

东南 西            1

西南 西北           1

西 北             1

南 北 东 东南        1

东北 南 北          1

东 南 北           1

Name: direction, dtype: int64

统计字段名及其对应长度: decorate 18

['平层/简装' '平层/精装' '简装' '平层/毛坯' '精装' '复式/精装' '平层/其他' '跃层/精装' '错层/精装' '复式/简装'

'复式/其他' '错层/其他' '错层/简装' '复式/毛坯' '跃层/简装' '毛坯' '错层/毛坯' '跃层/毛坯']

decorate字段下所有类别     对应数量

平层/精装    1428

平层/简装     997

平层/毛坯     247

复式/精装     166

平层/其他      57

复式/简装      39

复式/毛坯      17

错层/精装      16

精装          9

复式/其他       5

跃层/精装       5

简装          5

跃层/简装       2

错层/简装       2

跃层/毛坯       2

错层/其他       1

错层/毛坯       1

毛坯          1

Name: decorate, dtype: int64

统计字段名及其对应长度: garden 1859

['国和一村' '虹康花苑(三期)' '纪念小区' ... '南新东园' '遵义西大楼' '象屿名城']

garden字段下所有类别     对应数量

新南家园             15

世茂滨江花园           13

田林十二村            10

文怡花园              9

万馨佳园              9

绿地金卫新家园(西区)       9

金地湾流域(二期569弄)     8

中房公寓              8

鸿宝一村(南区)          8

新凯二期              8

中远两湾城             7

印象春城              7

新德佳苑              7

长丰坊               7

中环一号(一期)          6

惠康苑西苑             6

明园森林都市            6

明珠小区(川沙)          6

惠益新苑              6

富友嘉园              6

美兰湖中华园            6

中凯城市之光(静安)        6

金都雅苑(公寓)          6

达安锦园              6

徐汇苑               6

上海康城              6

丰庄十二街坊            6

中环一号(三期)          6

慧芝湖花园             6

御景龙庭              5

                ..

紫堤苑               1

金昌大厦              1

梓树园               1

西南名苑              1

佳宝一村              1

芳雅苑               1

德邑小城(公寓)          1

富丽苑               1

中友嘉园              1

证大家园(一期)          1

潍坊七村              1

钦州路111弄           1

东南华庭              1

铁岭路50弄            1

惠祥公寓              1

科苑新村              1

上海阳城              1

同济融创玫瑰公馆          1

湖畔佳苑(公寓)          1

寿祥坊               1

平阳三村              1

石泉小区              1

新福康里(公寓)          1

公馆77              1

合生城邦三街坊           1

双晖小区              1

明日星城(一期)          1

浅水湾恺悦名城           1

隽苑                1

紫竹小区              1

Name: garden, Length: 1859, dtype: int64

统计字段名及其对应长度: district 15

['杨浦' '长宁' '虹口' '松江' '闵行' '宝山' '静安' '徐汇' '浦东' '黄浦' '普陀' '嘉定' '奉贤' '金山'

'青浦']

district字段下所有类别     对应数量

浦东    794

闵行    400

徐汇    268

静安    228

宝山    208

普陀    169

嘉定    155

松江    146

杨浦    141

长宁    135

奉贤     95

黄浦     89

青浦     63

金山     55

虹口     54

Name: district, dtype: int64

dataset.corr():

                      age        id  Unnamed: 11  total_price_Num  \

age              1.000000  0.000330          NaN         0.199691  

id               0.000330  1.000000          NaN        -0.143520  

Unnamed: 11           NaN       NaN          NaN              NaN  

total_price_Num  0.199691 -0.143520          NaN         1.000000  

unit_price_Num  -0.143897 -0.071997          NaN         0.638882  

area_Num         0.345437 -0.171639          NaN         0.787404  

                unit_price_Num  area_Num  

age                   -0.143897  0.345437  

id                    -0.071997 -0.171639  

Unnamed: 11                 NaN       NaN  

total_price_Num        0.638882  0.787404  

unit_price_Num         1.000000  0.184717  

area_Num               0.184717  1.000000  

散点图可视化:可寻找异常点

检查目标变量满足整体分布

mu = 631.95 and sigma = 631.20

绘制Q-Q分位数图:看是否与理论的一致

Skew in numerical features:

skewness.head():

                    Skew

area_Num        3.448604

unit_price_Num  1.121800

总共有 2 数值型的特征做变换

采用LabelEncoder,对部分类别的特征进行编号,转为数值型

temp1:

roomtype            object

height              object

direction           object

decorate            object

garden              object

district            object

total_price_Num    float64

area_Num           float64

dtype: object

temp2:

Index(['roomtype', 'height', 'direction', 'decorate', 'garden', 'district'], dtype='object')

[5, 10, 8, 6, 11, 2, 13, 3, 7, 14, 4, 0, 1, 9, 12]

  roomtype  height  direction  decorate  garden  district  total_price_Num  \

0         4     134         16         6     507         5            290.0  

1         4      83         16         7    1501        10            599.0  

2         4      83         19         7    1333         8            420.0  

3         5      83         16         7     829         6            269.9  

4         1      40         16         7    1268        11            383.0  

5         8     105         16         6    1505        10           1250.0  

6         8      86         19         7      21        11            737.0  

7         0      38         16         9    1230         8            162.0  

8         5      98         19         7    1589         2            328.0  

9         0      40         16         6     708        13            163.0  

  area_Num  

0     62.79  

1     77.87  

2     81.62  

3     77.49  

4     48.45  

5    135.03  

6    112.00  

7     35.76  

8     77.63  

9     30.25  

     roomtype  height  direction  decorate  garden  district  \

2995         1      45         16         6     388         7  

2996         1      45         16         7     236        11  

2997         4      40         16         6    1819         2  

2998         4      51         13         7    1586        10  

2999         5      48         19         7    1547         6  

     total_price_Num  area_Num  

2995            230.0     53.31  

2996            372.0     49.59  

2997            366.0     73.24  

2998            365.0     52.82  

2999            420.0     85.00  


上一篇:ML之FE:对爬取的某平台二手房数据进行数据分析以及特征工程处理(二)


下一篇:程序员有哪些强迫症?听知乎网友为你现身说法