在Python中,如何替换或屏蔽字符前的子字符串?

2024-05-16 04:12:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据帧(df),其中一些列称为df['text]的具有不同的字符串,一些行具有电子邮件

df = df[df['text'].str.contains('@')]['text']

我看到了很多这样的例子:

Input                      Output
'example@gmail.com'        'exa****@gmail.com'
'example@gmail.com'        '*******@gmail.com'

但我需要一些更具体的像这样的

Input                                                       Output
'My email is example@gmail.com and my name is Fernando'     'My email is exa****@gmail.com and my name is Fernando

对不起,我的英语不好,谢谢


Tags: andtextnamecomdfinputoutputis
1条回答
网友
1楼 · 发布于 2024-05-16 04:12:10

下面是一个简单的模式,它最多将3前面的@非空格字符替换为***

df = pd.DataFrame({
    'text': ['My email is example@gmail.com and my name is Fernando',
             'This email has two characters: ab@gmail.com']
})

df.text.str.replace('(\S{,3}@)', '***@')

输出:

0    My email is exam***@gmail.com and my name is F...
1         This email has two characters: ***@gmail.com
Name: text, dtype: object

相关问题 更多 >