Преобразование поля в DataFrame по алгоритму
Есть такого вида DataFrame:
data = {
'Name': ['John', 'Anna', 'Peter','Andrew'],
'Score': ['J308670J308670J308671J308670','J308657J308657J308657J308657','J308740','J308657J308624J308657J308653'],
}
df = pd.DataFrame(data)
Надо преобразовать содержимое столбца Score по следующему алгоритму: "порезать" на фрагменты длиной 7 символов (куски всегда будут по шаблону JXXXXXX) и оставить только уникальные значения, разделив их пробелом. Кусков может быть от одного до "много" (реально - не более 100). Если будет проще - можно результат вывести в новый столбец.
Ответы (2 шт):
Автор решения: strawdog
→ Ссылка
Если я правильно понял вопрос, то сделать можно так:
df["Score"] = df["Score"].str.findall("J.{6}").apply(lambda x: " ".join(set(x)))
результат:
Name Score
0 John J308671 J308670
1 Anna J308657
2 Peter J308740
3 Andrew J308653 J308657 J308624
Автор решения: Алексей Р
→ Ссылка
Вариант без apply
df["Score"] = df["Score"].str.extractall("(J.{6})").groupby(level=0).agg(set)[0].transform(' '.join)
Name Score
0 John J308670 J308671
1 Anna J308657
2 Peter J308740
3 Andrew J308653 J308624 J308657