1. 删除重复行:drop_duplicate()
1.1 函数功能
返回去除重复行的DataFrame,不考虑索引。
1.2 函数语法
DataFrame.drop_duplicates(subset=None, *, keep='first', inplace=False, ignore_index=False)
1.3 函数参数
参数 | 含义 |
---|---|
subset | 列标签或列标签组成的列表,默认所有列 |
keep | 决定保留重复行中的哪个:first:保留重复值的第一个;last:保留重复值的最后一个;False:删除重复值的所有行 |
inplace | 布尔值,默认False:不修改原来的DataFrame |
ignore_index | 布尔值,默认False:不改变DataFrame的原有索引标签,否则将修改为0,1,…n-1 |
1.4 实践演示
df = pd.DataFrame({
'brand': ['Yum Yum', 'Yum Yum', 'Indomie', 'Indomie', 'Indomie'],
'style': ['cup', 'cup', 'cup', 'pack', 'pack'],
'rating': [4, 4, 3.5, 15, 5]})
print(df)
# 删除某一列中的重复值,保留重复值的第一个值
print('1.\n',df.drop_duplicates(subset='brand',keep='first'))
# 删除多列中的重复值,保留重复值的最后一个
print('2.\n',df.drop_duplicates(subset=['brand','style'],keep='last'))
# 默认删除所有列同时重复的行
print('3.\n',df.drop_duplicates(keep='first'))
# 重新标记索引
print('4.\n',df.drop_duplicates(keep='first',ignore_index=True))
# 删除重复行的所有行
print('5.\n',df.drop_duplicates(keep=False,ignore_index=True))
2. 查找重复行:duplicated()
2.1 函数功能
返回是否为重复行的布尔值Series
2.2 函数语法
DataFrame.duplicated(subset=None, keep='first')
2.3 函数参数
参数 | 含义 |
---|---|
subset | 列标签或列标签组成的列表,默认所有列 |
keep | 决定标记重复行中的哪个:first:标记重复行的第一个之外的为True;last:标记重复行的最后一个之外的为True;False:标记所有的重复行为True |
2.4 实战演练
df = pd.DataFrame({
'brand': ['Yum Yum', 'Yum Yum', 'Indomie', 'Indomie', 'Indomie'],
'style': ['cup', 'cup', 'cup', 'pack', 'pack'],
'rating': [4, 4, 3.5, 15, 5]})
print(df)
# 标记重复行第一个之外的为True
print('1.\n',df.duplicated(keep='first'))
# 标记重复行最后一个之外的为True
print('2.\n',df.duplicated(keep='last'))
# 标记所有重复行为True
print('3.\n',df.duplicated(keep=False))