替换数据帧上正则表达式匹配的第二组

2024-10-03 15:26:57 发布

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

我有一个大约1000行的数据框,我的要求是将username:之后出现的所有字符替换为一个公共字符串(比如“users”)

我正在使用下面的正则表达式来解决我的问题,我可以匹配第二个组中的所有用户名,我想用“users”来替换它们

正则表达式:

"(?i)(\busername\b\s?|\buname\s?)+[;|:]
(\s?[a-z-A-Z0-9@:!+=#$%^&*-]{5,})"

测试数据:

 username : user111
    uname : user212

预期产出:

username : users
uname : users

我还想在一个大数据集上做这个操作,所以我想看看是否有任何有效的方法来实现这一点


Tags: 数据方法字符串username字符users用户名集上
1条回答
网友
1楼 · 发布于 2024-10-03 15:26:57

我相信您可以使用正则表达式来实现这一点,但有时最简单的方法是拆分和加入,例如:

df = pd.DataFrame({'values':['username : user111','uname : user212']})

df['values'].apply(lambda x: ': '.join([x.split(':')[0], 'users']))

或者,如果您想避免使用lambda:

df['values'].str.split(':').str.get(0) + ': users'

输出

             values
0  username : users
1     uname : users

相关问题 更多 >