问题描述
一组数据如下:
df.isnull().sum()
城市 0
名称 0
星级 1529
评分 0
价格 1
销量 1
省/市/区 0
坐标 0
简介 41
是否免费 0
具体地址 3
dtype: int64
df['星级']
0 NaN
1 4A
2 5A
3 4A
4 5A
...
2438 NaN
2439 4A
2440 NaN
2441 NaN
2442 NaN
Name: 星级, Length: 2443, dtype: object
- 使用finall()
# 这种填充方式是一次性的
df['星级'].fillna(value=np.random.choice(['1A', '2A', '3A', '4A', '5A']), inplace=True)
一次性
根据概率 随机选取某一值填充 导致最后比例不均衡
- apply⭐
使用该函数是遇到一个异常值 根据规则 随机选取 并填充
# 发现存在异常值 同样处理
df['星级']=df['星级'].apply(lambda x: x if x in ['1A','2A','3A','4A','5A'] else random.choice(['1A','2A','3A','4A','5A']))
df['星级'].value_counts()
星级
4A 851
5A 576
3A 393
2A 324
1A 299
Name: count, dtype: int64