Как удалить повторяющиеся символы из слов данного фрейма данных Pandas с помощью Regex?

Опубликовано: 27 Марта, 2022

Предварительное условие: регулярное выражение в Python

В этой статье мы увидим, как удалить постоянно повторяющиеся символы из слов данного столбца данного фрейма данных Pandas с помощью Regex.

Здесь мы на самом деле ищем постоянно встречающиеся повторяющиеся символы, поэтому мы создали шаблон, содержащий это регулярное выражение ( w) 1+, здесь w для символа, 1+ для символов, которые появляются более одного раза.

Мы передаем наш шаблон в функцию re.sub () библиотеки re.

Syntax: re.sub(pattern, repl, string, count=0, flags=0)

'Sub' в функции означает SubString, определенный шаблон регулярного выражения ищется в данной строке (3-й параметр), и при нахождении шаблона подстроки заменяется на repl (2-й параметр), count проверяет и поддерживает количество раз это происходит.

Now, Let’s create a Dataframe:

Python3

# importing required libraries
import pandas as pd
import re
  
# creating Dataframe with column 
# as name and common_comments
df = pd.DataFrame(
  {
    "name" : ["Akash", "Ayush", "Diksha",
              "Priyanka", "Radhika"],
      
    "common_comments" : ["hey buddy meet me today ",
                         "sorry bro i cant meet",
                         "hey akash i love geeksforgeeks",
                         "twiiter is the best way to comment",
                         "geeksforgeeks is good for learners"]
    },
    
    columns = ["name", "common_comments"]
)
# printing Dataframe
df

Выход:

Now, Remove continuously repetitive characters from words of the Dataframe common_comments column. 

Python3

# define a function to remove
# continously repeating character
# from the word 
def conti_rep_char(str1):
    tchr = str1.group(0)
    if len(tchr) > 1:
      return tchr[0:1]
      
# define a function to check
# whether unique character 
# is present or not
def check_unique_char(rep, sent_text):
    
    # regular expression for 
    # repetion of characters
    convert = re.sub(r"(w)1+"
                     rep,
                     sent_text)
      
    # returing the converted word
    return convert
  
df["modified_common_comments"] = df["common_comments"].apply(
                                   lambda x : check_unique_char(conti_rep_char,
                                                              x))
# show Dataframe
df

Выход:

Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.

Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.