我有一个大约1000行的数据框,我的要求是将用户名:之后出现的所有字符替换为一个通用字符串(例如“用户”)。
我正在使用适合我的问题的以下正则表达式,并且可以将第二组中的所有用户名与“ users”替换为用户
正则表达式:
"(?i)(\busername\b\s?|\buname\s?)+[;|:]
(\s?[a-z-A-Z0-9@:!+=#$%^&*-]{5,})"
测试数据:
username : user111
uname : user212
预期输出:
username : users
uname : users
我也想对大型数据集执行此操作,因此我正在寻找是否有任何有效的方法来实现这一目标。
答案 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