Проверьте, появляется ли элемент ранее в списке элементов, используя Python Pandas - PullRequest
0 голосов
/ 07 июня 2018

У меня есть следующая таблица, в которой есть идентификаторы, и для каждого идентификатора у меня есть Корзина 1, Корзина 2 и, наконец, продукты в корзинах.

Я хочу найти в таблице sorted (сортировка по идентификатору из AZ, корзины 1 ASC и корзины 2 ASC) указывается ли ранее каждый продукт для каждого идентификатора (для того же идентификатора) и помещается Y или N в новый столбец (столбец E).

Пример ниже для первого идентификатора:

111AAA222 = [Product1, Product2, Product3, Product1, Product2, Product3, Product1 , Product4]

111AAA222 = [N, N, N, Y, Y, Y, Y, N]

В примере показано, что товары с 3-й по 6-ю позицию в списке ранее были в том же списке.

У меня проблемы с созданием нового столбца (столбец E: существует) со значениями Y и N с использованием панд Python.

Table - Raw Data

1 Ответ

0 голосов
/ 07 июня 2018

Создайте df_new, где данные сортируются, и вы отбрасываете дубликаты над двумя столбцами «ID» и «Product».Затем создайте столбец Existed, заполненный N, так как строки в df_new не являются дубликатами

df_new = df.sort_values(['ID','Basket 1','Basket 2'],0)[['ID','Product']].drop_duplicates()
df_new['Existed'] = 'N'

Теперь join этот столбец df_new['Existed'] с вашим df и заполните пропущенное значение 'Y'

df = df.join(df_new['Existed']).fillna('Y')

Если вы хотите, чтобы списки товаров и существовали, распечатайте это

df.groupby('ID')['Product','Existed'].agg(lambda x: list(x))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...