用法和介绍
drop_duplicates(subset=None, keep='first', inplace=False, ignore_index=False)
返回去除重复行的DataFrame
- subset: 列名,默认为所有列
设置根据列名来判断重复值,默认值为所有列元素相同时才判定为重复值。
- keep: 'first', 'last', False,默认为first
决定保留的数据行。
first:保留第一个出现的重复数据
last:保留最后一个出现的重复数据
False:删除所有的重复行
- inplace:布尔值,默认为False
设置是否在原DataFrame删除数据。若为True,则返回删除重复数据后的DataFrame。
- ignore_index:布尔值,默认为False
设置是否忽略行索引,去重后的结果的行索引不变。若为True,行索引则从0开始编号。
示例
先创建一个DataFrame
import pandas as pd
df = pd.DataFrame({
'category': ['beverage', 'beverage', 'food', 'beverage', 'food', 'book', 'beverage'],
'item': ['milk', 'tea', 'apple', 'coffee', 'peach','comic', 'tea'],
'price': [4, 4.5, 3.5, 4, 4, 4.5, 4.5]
})
输出DataFrame
1、drop_duplicates()
默认情况下根据所有列删除所有的重复行
df.drop_duplicates()
结果显示删除了最后一行,因为最后一行与第1行是完全一样的。
2、drop_duplicates(keep)
如果要指定删除第一个出现的重复值则输入参数keep='last'
df.drop_duplicates(keep='last')
3、drop_duplicates(subset)
如果要把价格重复的值删去,则设置参数subset='price'
df.drop_duplicates(subset='price')
参数subset可以传入以列名组成的列表,即这些列值都相等才删除
df.drop_duplicates(subset=['item','price'])
4、drop_duplicates(inplace)
若要将删除后的结果保留,则设置inplace=True。原来的df则替换成删除重复值后的DataFrame。
df.drop_duplicates(subset='category',inplace=True)
df
5、drop_duplicates(ignore_index)
若需要重置索引,则设置ignore_index=True
df.drop_duplicates(ignore_index=True)