Код: Выделить всё
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']})
- 'Уникальная пара': сгруппируйте по каждому имени и получите все уникальные буквы. Добавьте их вместе в отсортированном виде.
- "Уникальный элемент": сгруппируйте по каждому имени, разделите его, отбросьте 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(','))
Подробнее здесь: https://stackoverflow.com/questions/790 ... per-entity