如何使用Regex从给定的Pandas DataFrame的单词中删除重复的字符
在这篇文章中,我们将看到如何使用Regex从给定的Pandas Dataframe的给定列的单词中移除连续重复的字符。
在这里,我们实际上是在寻找连续出现的重复出现的字符,为此我们创建了一个包含这个正则表达式(\w)\1+的模式,这里的\w是指字符,1+是指出现一次以上的字符。
我们在re库的re.sub()函数中传递我们的模式。
语法: re.sub(pattern, repl, string, count=0, flags=0)
函数中的’sub’代表SubString,在给定的字符串(第3个参数)中搜索某个正则表达式模式,找到子串模式后用repl(第2个参数)替换,count检查并保持这种情况的发生次数。
现在,让我们创建一个数据框架。
# 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
输出:
现在,从Dataframe common_comments列的单词中删除连续重复的字符。
# define a function to remove
# continuously repeating character
# from the word
def conti_rep_char(str1):
tchr = str1.group(0)
if len(tchr) > 1:
返回值 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
# repetition of characters
convert = re.sub(r'(\w)\1+',
rep,
sent_text)
# 返回值ing the converted word
返回值 convert
df['modified_common_comments'] = df['common_comments'].apply(
lambda x : check_unique_char(conti_rep_char,
x))
# show Dataframe
df
输出: