首页 > 解决方案 > 如何处理缺失值

问题描述

我有一个住房数据集。

sac_new.head()    

street  city    zip state   beds    baths   sq__ft  type    sale_date   price   latitude    longitude
        0   3526 HIGH ST    SACRAMENTO  95838   CA  2   1   836 Residential Wed May 21 00:00:00 EDT 2008    59222   38.631913   -121.434879
        1   51 OMAHA CT SACRAMENTO  95823   CA  3   1   1167    Residential Wed May 21 00:00:00 EDT 2008    68212   38.478902   -121.431028
        2   2796 BRANCH ST  SACRAMENTO  95815   CA  2   1   796 Residential Wed May 21 00:00:00 EDT 2008    68880   38.618305   -121.443839
        3   2805 JANETTE WAY    SACRAMENTO  95815   CA  2   1   852 Residential Wed May 21 00:00:00 EDT 2008    69307   38.616835   -121.439146
        4   6001 MCMAHON DR SACRAMENTO  95824   CA  2   1   797 Residential Wed May 21 00:00:00 EDT 2008    81900   38.519470   -121.435768

sac_new.describe()

    zip beds    baths   sq__ft  price   latitude    longitude
count   985.000000  985.000000  985.000000  985.000000  985.000000  985.000000  985.000000
mean    95750.697462    2.911675    1.776650    1312.918782 233715.951269   38.445121   -121.193371
std 85.176072   1.307932    0.895371    856.123224  139088.818896   5.103637    5.100670
min 95603.000000    0.000000    0.000000    -984.000000 -210944.000000  -121.503471 -121.551704
25% 95660.000000    2.000000    1.000000    950.000000  145000.000000   38.482704   -121.446119
50% 95762.000000    3.000000    2.000000    1304.000000 213750.000000   38.625932   -121.375799
75% 95828.000000    4.000000    2.000000    1718.000000 300000.000000   38.695589   -121.294893
max 95864.000000    8.000000    5.000000    5822.000000 884790.000000   39.020808   38.668433

我需要处理零值

sac_new.beds.value_counts()
3    413
4    258
2    133
0    108
5     59
1      9
6      3
8      1
Name: beds, dtype: int64

sac_new.baths.value_counts()
2    544
1    179
3    132
0    108
4     19
5      2
Name: baths, dtype: int64

sac_new.sq_ft.value_counts()
0       171
1120      8
795       6
1410      5
1039      5
       ... 
988       1
1656      1
876       1
1659      1
1235      1
Name: sq_ft, Length: 603, dtype: int64

我认为零床、浴室和平方英尺的行可能是一块土地,所以可能想要保留。但是 sq_ft 为零但床和浴室的值的行一定是错误的。我认为我不应该删除这些行。我想我应该为 sq_ft 添加值并将它们基于其他行的平均 sq_ft。所以第一个问题是这是否是一个聪明的想法?

如果是这样,那么我认为它可以通过一段代码来实现,该代码块查找每个床和浴室组合的平均 sq_ft。那么,有多少行有 1 张床和 1 个浴室,总平方英尺的平均值是多少。有多少人有 1 张床和 2 间浴室... 2 张床和 1 间浴室、2 张床和 2 间浴室等。然后每个人的平均值可以添加到相应属性的零 sq_ft 值。

或者,首先检查 63 个具有浴缸和床位值的零 sq_ft 行的浴室和床位组合,然后只计算这些组合的平均 sq_ft,因为可能会比其余的要少。数据集。

但这只是我的小大脑在这个阶段所能得到的。任何人都可以帮忙吗?这是我在 stackoverflow 上发帖的第一天,所以如果我格式错误或要解释错误的事情,请告诉我。

标签: pythonpandasnumpy

解决方案


推荐阅读