我是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:无法从重复轴重新索引
简而言之,我无法弄清楚语法。请帮忙。如果有的话,我很乐意使用完全不同的方法。
答案 0 :(得分:0)
MDuplicates = MData.loc[MData.duplicated('UNITNUMBER', keep=False)]
MUnique = MData.drop_duplicates('UNITNUMBER', keep='first')