#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, но если я приму во внимание, что максимальное созданное ранжирование не соответствует наибольшему значению из справочника. Есть ли какой-нибудь способ, который может помочь мне исправить это?