Мне нужна действительно серьезная помощь с некоторым кодом.
У меня есть кадр данных, в котором я хочу найти дубликаты в 2 столбцах - номер по каталогу материала и производитель. Столбцы имеют нулевые значения. Мне нужно найти дубликаты следующим образом.
- Сначала я проверяю столбец Номер детали на наличие строк без нулевых значений. Так как я не хочу, чтобы нулевые значения рассматривались как дубликаты
- Если совпадают номера деталей, для двух одинаковых номеров деталей я проверяю столбец производителя на наличие дубликатов.
- Включаем как производителя, так и номера деталей одинаковы для двух или более строк, я вывожу результат в новый столбец под названием уровень дублирования. Вывод высокий для всех строк, в которых номера деталей и производители имеют точное совпадение.
- Однако, если номера деталей совпадают, а производитель не совпадает, вывод в столбец будет «Умеренный» ».
- Если сам номер детали не совпадает, то уровень дублирования равен 'No Duplicate'
- Кроме того, для строк, которые имеют номер NA в номере детали или производителя, укажите уровень дублирования как «без дубликатов», номер детали и умеренный номер производителя.
Это моя таблица ввода введите описание изображения здесь
код, который я написал для того же -
`for i in range(len(df)):
if pd.isnull(df.loc[i,'Material Part Number'])==False:
if (df['Material Part Number'].duplicated(keep=False))[i]==True:
if pd.isnull(df.loc[i,'Manufacturer'])==False:
if (df['Manufacturer'].duplicated(keep=False))[i]==True:
df.loc[i,'Level of Duplicacy']='High'
else:
df.loc[i,'Level of Duplicacy']='Moderate'
else:
df.loc[i,'Level of Duplicacy']='Moderate'
else:
df.loc[i,'Level of Duplicacy']='Not duplicate'
else:
df.loc[i,'Level of Duplicacy']='Not duplicate'`
Мне нужен вывод введите описание изображения здесь
Вывод, который я получаю введите описание изображения здесь
Как вы можете видеть в строках, выделенных желтым цветом, мой код не сравнивает производителей по одному конкретному / уникальному номеру детали, а выполняет его по всем номерам деталей, и я этого не хочу который. Я знаю, что функция .duplicated () сравнивает весь столбец, но что, если я хочу, чтобы она сравнивалась с каждым уникальным номером детали, а затем находила совпадение? Больше группового с дублированием? Может ли один из вас помочь мне изменить написанный мной код?
Большое спасибо.