[英]How to match regex pattern and replace it with a matching group using Pandas?
[英]Replace second group of a regex match on a pandas dataframe
我有一個大約 1000 行的 dataframe ,我的要求是將出現在 username: 之后的所有字符替換為一個通用字符串(比如“用戶”)。
我正在使用以下適合我的問題的正則表達式,我可以匹配第二組中我想用“用戶”替換的所有用戶名
正則表達式:
"(?i)(\busername\b\s?|\buname\s?)+[;|:]
(\s?[a-z-A-Z0-9@:!+=#$%^&*-]{5,})"
測試數據:
username : user111
uname : user212
預期 Output:
username : users
uname : users
另外我想在一個大型數據集上做這個操作,所以我正在尋找是否有任何有效的方法來實現這一點。
我確定您可以為此使用正則表達式,但有時最簡單的方法是拆分和加入,例如:
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'
Output
values
0 username : users
1 uname : users
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.