Pandas学习之drop_duplicates()

pandas学习之drop_duplicates()

数据预处理中,经常需要对重复的数据进行处理,这个时候就需要使用drop_duplicates()

官方文档

DataFrame.drop_duplicates(subset=None, keep=‘first’, inplace=False, ignore_index=False)

参数详解

  1. 构建实例
import pandas as pd
import numpy as np
df = pd.DataFrame(data={'height':[178,178,185,196],'weight':[156,90,140,142],'name':['小王','小王','小王','小红']})
df

	height	weight	name
0	178		156		小王
1	178		90		小王
2	185		140		小王
3	196		142		小红
  1. subset:column label or sequence label optional
    单个列名标签或者一个列名标签的序列
    仅仅考虑某些选中的列名中的重复项,默认选择全部的列名
	height	weight	name
0	178		156		小王
1	178		90		小王
2	185		140		小王
3	196		142		小红
_____________________________
df.drop_duplicates(subset='name')# 删除name列中的重复值

	height	weight	name
0	178		156		小王
3	196		142		小红

df.drop_duplicates(subset=['name','height'])# 当height和name列的值都重复时,删掉重复值

	height	weight	name
0	178		156		小王
2	185		140		小王
3	196		142		小红
  1. keep:{‘first’,‘last’,False},default ‘first’
    选择需要保留的重复值
  • first: 保留第一次出现的重复值
  • last:保留最后一次出现的重复值
  • False:删除所有重复值,不保留
	height	weight	name
0	178		156		小王
1	178		90		小王
2	185		140		小王
3	196		142		小红
_________________________________
df.drop_duplicates(subset=['name','height'],keep = 'last')#保留最后一次出现的重复值

	height	weight	name
1	178		90		小王 #这一条可以和上一个例子对比一下
2	185		140		小王
3	196		142		小红
  1. inplace:bool,True,False,default False
    是否将结果复制,重新赋值给原变量,即:
df = df.drop_duplicates()
df.drop_duplicates(inplace = True)
#这两种写法最后df的值是一样的
  1. ignore_index: bool,default False
    布尔值,默认为False
    如果为True,会对结果重新排序
	height	weight	name
0	178		156		小王
1	178		90		小王
2	185		140		小王
3	196		142		小红
————————————————————————————————————————————
df.drop_duplicates(subset=['name','height'],keep = 'last',ignore_index=True)

	height	weight	name
0	178		90		小王
1	185		140		小王
2	196		142		小红
# 对行索引进行重置

你可能感兴趣的:(pandas,python)