Уникальный элемент для каждой сущностиPython

Программы на Python
Anonymous
Уникальный элемент для каждой сущности

Сообщение Anonymous »

Я хочу получить информацию по имени.

Код: Выделить всё

df=pd.DataFrame({'Name':['A','A','A','A','B','B','B','B'],
'Pair':['b','c','d','e','b','f','d','g'],
'List 1':['1,2','2,3,4',np.nan,'5',np.nan,'1,2,3','3,6','5,4'],
'List 2':['1,2,3',',3,4','3','4,5',np.nan,'1,3','1,3,6','5,4']})

Для вывода я хочу разделить «Пару», «Список 1» и «Список 2» на цифры и соединить их.
  • 'Уникальная пара': сгруппируйте по каждому имени и получите все уникальные буквы. Добавьте их вместе в отсортированном виде.
  • "Уникальный элемент": сгруппируйте по каждому имени, разделите его, отбросьте NA и объедините все уникальные буквы. и сортировать письма.
  • 'Все элементы': единственное отличие состоит в том, что он не объединяет уникальные буквы, а отображает все буквы и сортирует письма. Например, для имени A есть две цифры «2», поэтому оно появляется дважды.

Код: Выделить всё

out=pd.DataFrame({'Name':['A','B'],
'Unique Pair':['b,c,d,e','b,d,f,g'],
'Unique List 1 Item':['1,2,3,4,5','1,2,3,4,5,6'],
'All List 1 Item':['1,2,2,3,4,5','1,2,3,3,4,5,6'],
'Unique List 2 Item':['1,2,3,4,5','1,3,4,5,6'],
'All List 2 Item':['1,2,3,3,3,4,4,5','1,1,3,3,4,5,6']
})

Я пробовал это, но не знаю, как соединить все элементы вместе.

Код: Выделить всё

df.groupby('Name')['List'].fillna('NA').apply(lambda x: x.split(','))
Мой набор необработанных данных содержит более 500 000 000 строк, поэтому я ищу эффективное решение.

Подробнее здесь: https://stackoverflow.com/questions/790 ... per-entity

Вернуться в «Python»