使用pandas识别指定列中具有重复值的记录

时间:2017-07-17 21:01:45

标签: python pandas duplicates

我是Python和Pandas的新手。 我正在清理50,000件设备(50,000行和10列)的数据文件。 对于每条记录,一列(' UNITNUMBER')应该是唯一的。但是有重复,我试图生成两个数据框:一个包含UNITNUMBER唯一的所有记录,另一个包含UNITNUMBER在另一个记录中重复的所有记录。

以下是一系列,其中UNITNUMBER是索引,True表示重复,False表示唯一。 MData=pd.read_excel(MFile,MFileTab, skiprows=0) DupSeries=(MData.UNITNUMBER.value_counts()>1)

以下产生一系列,其中每个设备的记录与原始DataFrame的顺序相同,索引是UNITMASTER值,系列值是True或False。 DupSeries[MROData['UNITNUMBER']]

我期待

MData[DupSeries[MData['UNITNUMBER']]]

会产生MDIT中所有记录,其中UNITNUMBER是重复的,但我得到一个警告和错误:

UserWarning:Boolean系列键将重新编制索引以匹配DataFrame索引。

ValueError:无法从重复轴重新索引

简而言之,我无法弄清楚语法。请帮忙。如果有的话,我很乐意使用完全不同的方法。

1 个答案:

答案 0 :(得分:0)

MDuplicates = MData.loc[MData.duplicated('UNITNUMBER', keep=False)]
MUnique = MData.drop_duplicates('UNITNUMBER', keep='first')