python dataframe数据集中重复数据的检查、修改、删除方法

python dataframe数据集中重复数据的检查的、修改、删除方法

1.创建一个测试样例

import pandas as pd
se1=pd.Series(['a','b','b','d','d','d','e','f','f'])
se2=pd.Series(['1','2','2','4','4','4','5','7','8'])
df = pd.DataFrame({'name':se1, 'number':se2})
df

看一下df的样子:

2.查看name列中包含的数据有哪些?

print(df['name'].unique()) 

结果为:['a' 'b' 'd' 'e' 'f']

可以看到结果为name列中包含的不同的数据值。这个函数筛选的并非列中值出现一次的值,而是输出列中存在的值。

3.输出列中每个数值,及每个值出现的次数

df['name'].value_counts()

输出结果如下:

4.查看数据集中行的重复情况

df.duplicated()

结果如下:

可以看到duplicated会对行的重复情况做检查,并且将重复行中的第一行置为False,其余行置为True。也就是说认为重复行中的第一行为不重复,剩余行为重复行。

深入一下:

duplicate的参数为:duplicated(subset=None,keep=“first”)。

其中keep参数可以设置如下:

          - first:从前向后查找,除了第一次出现外,其余相同的被标记为重复。默认为此选项。(上面的实验已经看到这一点)

          - last:从后向前查找,除了最后一次出现外,其余相同的被标记为重复。

          - False:所有相同的都标记为重复。

subset:用于识别重复的列标签或列标签序列,默认识别所有的列标签。

使用方法:df.duplicated(subset=['name','number'])。

 

5.删除数据集中重复的行

df.drop_duplicates()

将返回数据集中,不同的数据行

深入一下:

drop_duplicates(subset=None,keep=“first”,inplace=False)

inplace:表示是否在原数据上操作,如果设为True,则表示直接修改原数据;如果设为False,则表示修改原数据的副本,返回新数据。True可以理解为永久修改,False为临时修改。

keep:同duplicated一样,这里就不再详细说了。

看一下subset的实验:

df.drop_duplicates(subset='name')

结果如下:

可以看到,删除重复行的时候,只考虑了subset集中列的重复情况,未考虑其他列的重复情况。

 

欢迎点赞、评论、转发~

 

  • 13
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值