python 查看,删除 重复的值

本文介绍了如何在Python中使用DataFrame处理重复值。首先,通过分组和筛选找出特定列(如'age')中的重复值。然后,利用duplicated()方法判断数据中是否存在重复的行或列组合,并进一步使用drop_duplicates()方法进行去重操作。示例展示了在数据集中查找age为20的重复项,并演示了如何删除整个数据集中的重复行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

dataFrame数据如下

import pandas as pd
data = pd.DataFrame({'name':['小红','小兰','小明','小芳'], 'sex':["女","女","男","女"], 'age':[19,20,23,20]})
	name sex age
0	小红  女	19
1	小兰	 女	20
2	小明	 男	23
3	小芳	 女	20

1.查找age列相同的数据

a = data.groupby('age').count()>1 
age = a[a['sex'] == True].index
repeat_da = data[data['age'].isin(age)]
repeat_da
	name sex age
1	小兰	 女	 20
3	小芳	 女	 20

步骤:
(1)将data根据age分组,每个age出现的次数大于1的返回True,本例中只有20出现超过1次,所以只有20为True其他为False
(2)取sex为True时的索引,即age的值,此时写age = a[a[‘name’] == True].index效果相同
(3)返回 'age’列中含有 [20] 的datafram
⚠️注意这边有一个知识点:根据列的值返回含有具体条件的dataframe

在这里插入图片描述
2.duplicated()方法判断是否有重复的值
(1)某列是否有重复的值,重复时返回True,第一次出现为False

fg1 = data.age.duplicated()
fg1
out:
0    False
1    False
2    False
3     True
Name: age, dtype: bool

(2)某行是否重复时,重复时返回True,第一次出现为False

fg = data.duplicated()
fg
out:
0    False
1    False
2    False
3    False
dtype: bool

可以看到该例中没有重复的行
(3)判断dataframe数据多列数据是否重复(多列组合查)

fg = data.duplicated(subset=['age','sex'])
fg
out:
0    False
1    False
2    False
3     True
dtype: bool

3.drop_duplicats()方法去重

DataFrame.drop_duplicates(subset=None, keep='first', inplace=False)

"""
drop_duplicats参数说明:
  参数subset
    subset用来指定特定的列,默认所有列
  参数keep
    keep可以为first和last,表示是选择最前一项还是最后一项保留,默认first
  参数inplace
    inplace是直接在原来数据上修改还是保留一个副本,默认为False
  """
 #将满足年纪和年龄相同的行删除
data.drop_duplicates(subset=['sex','age'], keep=False , inplace=False)
out:
	name sex age
0	小红	 女	 19
2	小明	 男	 23

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值