【Python 数据科学】处理空值和重复值

>>>import pandas as pd
>>>import numpy as np
>>>position=pd.read_csv('test.csv',encoding='gbk')
>>>position
studentIdnamecoursescore
01jackchinese88.0
11jackmath76.0
21jackenglish93.0
32nacychinese68.0
42nacymathNaN
52nacyenglish82.0
63alicechinese87.0
73alicemath89.0
83aliceenglish74.0
93aliceenglish74.0

1.空值

#让position表里面的name列=jack的值为空
position.loc[position.name=='jack','name']=np.NaN
position
studentIdnamecoursescore
01NaNchinese88.0
11NaNmath76.0
21NaNenglish93.0
32nacychinese68.0
42nacymathNaN
52nacyenglish82.0
63alicechinese87.0
73alicemath89.0
83aliceenglish74.0
93aliceenglish74.0

1)填充

#针对表中所有空值填充
>>>position.fillna('jack')
studentIdnamecoursescore
01jackchinese88
11jackmath76
21jackenglish93
32nacychinese68
42nacymathjack
52nacyenglish82
63alicechinese87
73alicemath89
83aliceenglish74
93aliceenglish74
#针对name列赋值填充
>>>position.name=position.name.fillna('jack')
>>>position
studentIdnamecoursescore
01jackchinese88.0
11jackmath76.0
21jackenglish93.0
32nacychinese68.0
42nacymathNaN
52nacyenglish82.0
63alicechinese87.0
73alicemath89.0
83aliceenglish74.0
93aliceenglish74.0

2)删除

#删除表中有空值所在的行     
>>>position.dropna()
studentIdnamecoursescore
01jackchinese88.0
11jackmath76.0
21jackenglish93.0
32nacychinese68.0
52nacyenglish82.0
63alicechinese87.0
73alicemath89.0
83aliceenglish74.0
93aliceenglish74.0
#删除表中有空值所在的列  
position.dropna(axis=1)
studentIdnamecourse
01jackchinese
11jackmath
21jackenglish
32nacychinese
42nacymath
52nacyenglish
63alicechinese
73alicemath
83aliceenglish
93aliceenglish

2.重复值

#position.duplicated()是一个series,值类型是布尔值
#默认认为第二个及以后出现的是重复值,duplicated(keep='last')则认为最后一个之前的数据是重复值
>>>position.duplicated()
#>>>type(position.duplicated())

0    False
1    False
2    False
3    False
4    False
5    False
6    False
7    False
8    False
9     True
dtype: bool
#取重
>>>position[position.duplicated()]
studentIdnamecoursescore
93aliceenglish74.0
#取非重
>>>position[~position.duplicated()]
studentIdnamecoursescore
01NaNchinese88.0
11NaNmath76.0
21NaNenglish93.0
32nacychinese68.0
42nacymathNaN
52nacyenglish82.0
63alicechinese87.0
73alicemath89.0
83aliceenglish74.0
#drop_duplicates 直接去重
>>>position.drop_duplicates()
studentIdnamecoursescore
01NaNchinese88.0
11NaNmath76.0
21NaNenglish93.0
32nacychinese68.0
42nacymathNaN
52nacyenglish82.0
63alicechinese87.0
73alicemath89.0
83aliceenglish74.0
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值