Анализ и выборка уникальных сообщений
Просьба подсказать, как можно реализовать выборку по уникальным значениям, имея DF с текстовыми сообщениями.
Текст сообщений может содержать от 4 до 200+ символов, текстовые сообщение по типу: "Ваш ID 12345", "your ID 23432" или аналогичного характера, как на рус. так и на английском языке. Соответственно df с данными сообщениями может содержать от 100к до нескольки миллионов строк, где строка соответствует сообщению, необходимо проанализировать и получить по несколько уникальных примеров сообщений. Соответсвенно уникальными будут считаться, "Ваш ID xxxx", "your ID xxxx",. Соответсвенно DF может содержать различные шаблоны которые заранее не известны.
Входные данные:
---------------------
9089 | your ID 9897
9089 | is code 67567
9089 | code 90878
9089 | is code 67567
9089 | code 90878
8789 | code 78yh45
6078 | your ID is 908r78
7843 | Ваш ID 909r5
Нужно получить выборку уникальных сообщений в подобном формате по одному примеру каждого контента:
--------------------
9089 | your ID xxxx
9089 | is code xxxx
9089 | code xxxx
6078 | your ID is хххх
7843 | Ваш ID хххх
8789 | code ххххх
Ответы (1 шт):
да, мне нужно получить уникальные сообщения которые будут отличаться только числами ID
In [389]: df
Out[389]:
ID msg
0 9089 your ID 9897
1 9089 is code 67567
2 9089 code 90878
3 9089 is code 67567
4 9089 code 90878
5 8789 code 78yh45
6 6078 your ID is 908r78
7 7843 Ваш ID 909r5
In [390]: res = df["msg"].str.replace(r"\d[\da-z]{2,}", "XXXX").drop_duplicates()
In [391]: res
Out[391]:
0 your ID XXXX
1 is code XXXX
2 code XXXX
6 your ID is XXXX
7 Ваш ID XXXX
Name: msg, dtype: object