df = pd.DataFrame({
'brand': ['Yum Yum', 'Yum Yum', 'Indomie', 'Indomie', 'Indomie'],
'style': ['cup', 'cup', 'cup', 'pack', 'pack'],
'rating': [4, 4, 3.5, 15, 5]
brand style rating
0 Yum Yum cup 4.0
1 Yum Yum cup 4.0
2 Indomie cup 3.5
3 Indomie pack 15.0
4 Indomie pack 5.0
默认情况下,对于每组重复的值,第一次出现都设置为False,所有其他值设置为True。
df.duplicated()
0 False
1 True
2 False
3 False
4 False
dtype: bool
通过使用“ last”,将每组重复值的最后一次出现设置为False,将所有其他重复值设置为True。
df.duplicated(keep='last')
0 True
1 False
2 False
3 False
4 False
dtype: bool
通过将keep设置为False,所有重复项都为True。
df.duplicated(keep=False)
0 True
1 True
2 False
3 False
4 False
dtype: bool
要在特定列上查找重复项,请使用子集。
df.duplicated(subset=['brand'])
0 False
1 True
2 False
3 True
4 True
dtype: bool
删除重复值
删除重复值的语法为:
df.drop_duplicates(subset=None,
keep='first',
inplace=False,
ignore_index=False)
subset指定的标签或标签序列可选,仅删除某些列重复项,默认情况为使用所有列,其他有:
keep:确定要保留的重复项(如果有)
- first : 保留第一次出现的重复项,默认
- last : 保留最后一次出现的重复项。
- False : 删除所有重复项
- inplac:False,是将副本放置在适当位置还是返回副本
- ignore_inde:如果为True, 则重新分配自然索引(0, 1, …, n - 1)
操作一下:
df = pd.DataFrame({
'brand': ['Yum Yum', 'Yum Yum', 'Indomie', 'Indomie', 'Indomie'],
'style': ['cup', 'cup', 'cup', 'pack', 'pack'],
'rating': [4, 4, 3.5, 15, 5]
brand style rating
0 Yum Yum cup 4.0
1 Yum Yum cup 4.0
2 Indomie cup 3.5
3 Indomie pack 15.0
4 Indomie pack 5.0
默认情况下,它将基于所有列删除重复的行。
df.drop_duplicates()
brand style rating
0 Yum Yum cup 4.0
2 Indomie cup 3.5
3 Indomie pack 15.0
4 Indomie pack 5.0
要删除特定列上的重复项,请使用子集。
df.drop_duplicates(subset=['brand'])
brand style rating
0 Yum Yum cup 4.0
2 Indomie cup 3.5
要删除重复项并保留最后一次出现,请使用keep。