Pandas, строку из одного столбца превратить во множество и записать в другой столбец

Рейтинг: 1Ответов: 1Опубликовано: 14.08.2023

Есть датафрейм вида:

df = pd.DataFrame(
{'COL1': ['Строка 1', 'Строка 2', 'Строка 3', 'Строка 4'], 'COL2': ['a1, a2, a1', 'd2, d2', 'k1, T3', 'M7'], 'COL3': ['', '', '', ''],
 })

Подскажите пожалуйста, как в столбец 'COL3' скопировать только уникальные значения из столбца 'COL2'? Тоесть должно получиться:

Итоговый результат

Ответы

▲ 5Принят

Ну, придётся разбить ваши строки по запятой с пробелом, а потом обратно склеить. И порядок следования элементов в множестве может поменяться:

df['COL3'] = df['COL2'].map(lambda x: ', '.join(set(x.split(', '))))

Или даже лучше вот так, без ухода в lambda, чисто пандасом:

df['COL3'] = df['COL2'].str.split(',\s*').map(set).str.join(', ')
index COL1 COL2 COL3
0 Строка 1 a1, a2, a1 a1, a2
1 Строка 2 d2, d2 d2
2 Строка 3 k1, T3 T3, k1
3 Строка 4 M7 M7

Есть и другие варианты, но пример я вам показал.