замена значения атрибута на основе порядка

#python #dictionary #replace #ranking

#питон #словарь #заменять #Рейтинг

Вопрос:

Я пытаюсь выполнить манипуляции с данными, используя Python для этого набора данных:

 product Marketplace product_type 1 200 X 2 300 A 2 400 A 2 200 A 3 500 A 3 200 B 3 400 A 3 500 A  

Ожидаемый результат будет следующим:

 product Marketplace product_type 1 200 X 2 300 A 2 400 A 2 200 A 3 500 B 3 200 B 3 400 B 3 500 B  

Я пытаюсь проверить для каждого типа продукта, есть ли у меня дубликаты, для тех, которые содержат значения дубликатов, я должен заменить значение для типа продукта, если у меня есть 2 или более значений типа продукта, значением из типа продукта, где marketplace = 200, 300, 400 и 500.

Для этого я использовал этот код:

 mp_correspondence = {200:1,   300:2,  400:3,  500:4,   } df['ranking'] = df['marketplace'].map(mp_correspondence) number_list = set(df['product '])   for i in product_list:  df_product_frame = df[df['product '] == i].copy()  nr_rows = df_product_frame['product'].count()  if nr_rows gt; 1:  product_type_count = set(df_product_frame['product_type'])  print(product_type_count )  preced_value = set(df['ranking'])  print(preced_value)  if product_type_count != 1:  preced_MP = max(preced_value)  print(preced_MP)   else:  print('Lesser than 1')  

Для типов продуктов, которые не совпадают, я должен заменить значения для всех переменных продукта на значения в порядке, который я представил в mp_corresponse, но если я приму во внимание, что максимальное созданное ранжирование не соответствует наибольшему значению из справочника. Есть ли какой-нибудь способ, который может помочь мне исправить это?