pandas数据去重:drop_duplicates与duplicated函数
pandas去重函数:drop_duplicates和duplicated函数详解
·
1 drop_duplicates与duplicated参数:
- DataFrame.duplicated(subset=None,keep=‘first’)
- DataFrame.drop_duplicates(subset=None, keep=‘first’, inplace=False)
- subset:列标签,可选, 默认使用所有列,只考虑某些列来识别重复项传入列标签或者列标签的序列
- keep:{‘first’,‘last’,False},默认’first’
-
first:删除第一次出现的重复项。
-
last:删除重复项,除了最后一次出现。
-
“false”:删除所有重复项
-
- inplace:是否替换原数据,默认是生成新的对象,可以复制到新的DataFrame,如果设置为True则乎替换原有数据,通常不建议设置为True
- inplace参数的定义在pandas中有点类似,上述说法也可以对比rename函数中的inplace参数的作用
https://zhuanlan.zhihu.com/p/470913844
2 duplicated函数
- subset=None默认情况下去重
import pandas as pd
df = pd.DataFrame({
'brand': ['Yum Yum', 'Yum Yum', 'Indomie', 'Indomie', 'Indomie'],
'style': ['cup', 'cup', 'cup', 'pack', 'pack'],
'rating': [4, 4, 3.5, 15, 5]
})
df
df.duplicated()
- 显然是全部列都标识作为去重条件
- subset=[‘brand’,‘style’] 时候
- 可以看到用duplicated函数返回的都是布尔类型的结果,为方便展示,接下来的参数功能使用drop_duplicates函数结果
- keep(默认为保留第一个“first”)
- keep(保留最后一个“last”)
- keep(删除所有重复值“false”)
- inplace=True 对原DF进行修改,不返回新的对象
- inplace=False 不对原DF进行修改,返回新的对象
参考资料
- https://zhuanlan.zhihu.com/p/58976044
- https://blog.csdn.net/weixin_42097208/article/details/112403720
更多推荐
已为社区贡献3条内容
所有评论(0)