簡體   English   中英

替換 pandas dataframe 上的第二組正則表達式匹配

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM