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()

pandas数据去重:drop_duplicates与duplicated函数_第1张图片

  • 显然是全部列都标识作为去重条件
  • subset=[‘brand’,‘style’] 时候
    pandas数据去重:drop_duplicates与duplicated函数_第2张图片
  • 可以看到用duplicated函数返回的都是布尔类型的结果,为方便展示,接下来的参数功能使用drop_duplicates函数结果
  • keep(默认为保留第一个“first”)
    pandas数据去重:drop_duplicates与duplicated函数_第3张图片
  • keep(保留最后一个“last”)pandas数据去重:drop_duplicates与duplicated函数_第4张图片
  • keep(删除所有重复值“false”)
    pandas数据去重:drop_duplicates与duplicated函数_第5张图片
  • inplace=True 对原DF进行修改,不返回新的对象
    pandas数据去重:drop_duplicates与duplicated函数_第6张图片
  • inplace=False 不对原DF进行修改,返回新的对象
    pandas数据去重:drop_duplicates与duplicated函数_第7张图片

参考资料

  • https://zhuanlan.zhihu.com/p/58976044
  • https://blog.csdn.net/weixin_42097208/article/details/112403720

你可能感兴趣的:(pandas,机器学习,python)