我是Python和熊貓的新手。 我正在清洗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']]]
會產生所有在MDATA其中UNITNUMBER被複制的記錄,而是我得到一個警告和一個錯誤:
UserWarning:布爾系列鍵將重建索引,以匹配DataFrame索引。
ValueError異常:不能從一個重複的重新索引軸線
總之,我不能找出的語法。請幫忙。如果有的話,我很樂意使用完全不同的方法。
MData.loc [DupSeries]不會出現work.IndexingError:作爲索引(布爾系列指數和索引對象不匹配 – KevinC
注有較少的記錄比DupSeries布爾Unalignable系列MData,因爲DupSeries只有一個記錄用於重複的UNITNUMBER,而MData有多個記錄用於重複的UNITNUMBER。 – KevinC
MDuplicates = MData.duplicated('UNITNUMBER',keep = False)也不起作用,它只是返回一系列索引,行號),表明MData中的記錄是否有重複的UNTNUMBER,我需要MData中的每個記錄的所有列都有重複的UNITNUMBER – KevinC