pandas(九)数据转换详解大数据

移除重复数据

dataframe中常常会出现重复行,DataFrame对象的duplicated方法返回一个布尔型的Series对象,可以表示各行是否是重复行。还有一个drop_duplicates方法,用于返回一个移除了重复行的DataFrame。

In [36]: data = DataFrame({'k1':['one']*3+['two']*4,"k2":[1,1,2,3,3,4,4]}) 
 
In [37]: data 
Out[37]: 
    k1  k2 
0  one   1 
1  one   1 
2  one   2 
3  two   3 
4  two   3 
5  two   4 
6  two   4 
#duplicated方法用于判断是否重复行,返回的是一个Series对象 
In [39]: data.duplicated() 
Out[39]: 
0    False 
1     True 
2    False 
3    False 
4     True 
5    False 
6     True 
dtype: bool 
 
#drop_duplicates,剔除重复行,默认检查的是所有列的集合。 
 
In [41]: data.drop_duplicates() 
Out[41]: 
    k1  k2 
0  one   1 
2  one   2 
3  two   3 
5  two   4 
#指定部分列进行重复判断和删除 
In [42]: data.duplicated('k1') 
Out[42]: 
0    False 
1     True 
2     True 
3    False 
4     True 
5     True 
6     True 
dtype: bool 
 
In [43]: data.drop_duplicates('k2') 
Out[43]: 
    k1  k2 
0  one   1 
2  one   2 
3  two   3 
5  two   4

是否已经发现,duplicated和drop_duplicates默认保留的都是第一个出现的值组合,传入keep=‘last’,则保留最后一个出现的值。

keep的选项:

‘first’:默认保留第一个出现的值。

‘last’:保留最后一个出现的值

False:使所有的duplicates为True

In [49]: data.drop_duplicates(keep = 'last') 
Out[49]: 
    k1  k2 
1  one   1 
2  one   2 
4  two   3 
6  two   4 
 
In [50]: data.drop_duplicates(keep = False) 
Out[50]: 
    k1  k2 
2  one   2

 

利用函数或映射进行数据转换

 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/9213.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论