替换熊猫数据框上的第二组正则表达式匹配项

时间:2020-06-05 19:46:27

标签: python regex pandas dataframe

我有一个大约1000行的数据框,我的要求是将用户名:之后出现的所有字符替换为一个通用字符串(例如“用户”)。

我正在使用适合我的问题的以下正则表达式,并且可以将第二组中的所有用户名与“ users”替换为用户

正则表达式:

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

测试数据:

 username : user111
    uname : user212

预期输出:

username : users
uname : users

我也想对大型数据集执行此操作,因此我正在寻找是否有任何有效的方法来实现这一目标。

1 个答案:

答案 0 :(得分:0)

我确定您可以为此使用正则表达式,但是有时最简单的方法是拆分并加入,例如:

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