https://www.cnblogs.com/liaojiafa/p/6262223.html
缺失值的处理:我们先了解下这样的判断方法:
>>> a={1:'a',2:'b'}
>>> print([a[1]=='a'])
[True]
上述代码打印结果必然是True,小括号([])相当于if判断了,返回的值为布尔值。
下面对price为0的值(也就是缺失值)进行处理。
data['price'][(data['price']==0)]=None # 对price的缺失值统统赋值为None,方便下面处理
data['price'][(data['price']==0)]=64 # 也可以这样写,直接把price的缺失值设置为price的平均数64.那么下面的for循环设置price的缺失值就不需要写。
对上面这段代码拆分来看:
(data['price']==0) 判断data['price']列中哪行price的值等于0,等于的返回True,不等于返回Falsedata['price'][(data['price']==0)] 这语句就是一下子把所有price=0的给取出来了 ,然后哪行的price等于0就 赋值为None>>> (data['price']==0)
0 False
1 False
2 False
3 False
4 False
5 False
6 False
7 False
8 False
9 False
10 False
11 False
12 False
13 False
14 False
15 False
16 False
17 False
18 False
19 False
20 False
21 False
22 False
23 False
24 False
25 True
26 False
27 False
28 False
29 False
...
>>> data['price'][(data['price']==0)]
25 0
185 0
911 0
2022 0
2039 0
2203 0
2284 0
2366 0
2634 0
3035 0
3213 0
3375 0
3707 0
3784 0
4183 0
4215 0
4332 0
4558 0
4746 0
5769 0
5802 0
5845 0
5915 0
5948 0
6210 0
6226 0
6328 0
6396 0
6620 0
6769 0
6820 0
6949 0
7128 0
7213 0
7444 0
7517 0
7738 0
7912 0
8137 0
8293 0
8741 0
8819 0
9456 0
9610 0
Name: price, dtype: int64
>>>