最细总结_Duplicated()找到(所有)重复项 / / Drop_duplicates()找出每组(第一个)重复项 / /找出每组(最后一个)重复项

Duplicated()找出重复项_找出所有重复项含本身

写简单些,就取3行数据

 

df_search.loc[:,['PCI','Longitude','Latitude']].duplicated(keep=False)

取出所有重复的项,那就简单了

df_search[df_search.loc[:,['PCI','Longitude','Latitude']].duplicated(keep=False)]

 

Drop_duplicates()找出重复项_找出第一个重复项含本身

 

思路

  1. 采用drop_duplicates对数据去两次重,一次将重复数据全部去除(keep=False)记为data1,另一次将重复数据保留一个(keep='first)记为data2;
  2. 求data1和data2的差集即可:data2.append(data1).drop_duplicates(keep=False)

使用df1  =df_search.drop_duplicates(['PCI','Longitude','Latitude'], keep=False)

 

df1df2合并后,再干掉数据中重复项,就找到了第一个重复项。

 

Drop_duplicates()找出重复项_找出最后一个重复项含本身

使用df1  =df_search.drop_duplicates(['PCI','Longitude','Latitude'], keep=False)

 

df1df2合并后,再干掉数据中重复项,就找到了最后一个重复项。

 

 

根据上面的理解,解决一个问题,即从一个表格中找到'PCI','Longitude','Latitude'列,都重复的数据,把它们提取出来。

import pandas as pd
class Find_dup(object):
    def __init__(self,input_dir,in_filename):

        filename = r"%s\%s " % (input_dir,in_filename)
        self.df = pd.read_excel(filename)

        self.df.index += 1

    def find_dup_item(self):
        df_useful = self.df.loc[:,['PCI','Longitude','Latitude']]
        df_useful['mod_pci']=df_useful.loc[:,['PCI']]%3
        df_duplicate_item=df_useful[df_useful.loc[:,['mod_pci','Longitude','Latitude']].duplicated(keep=False)]
        return df_duplicate_item

    def save_csv(self,output_dir,filename):
        self.find_dup_item().to_csv(r"%s\%s " % (output_dir,filename), encoding='utf-8')
        return print("已将重复项保存至 目录:%s 文件为:%s的文件,请查看!" % (output_dir,filename))

task = Find_dup('e:\lihao','lihao_info.xlsx')
task.save_csv('e:\lihao','output.csv')

共享学习,希望对大家有帮助!

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值