[英]How to use Regular Expression to remove repeated characters Python
下面是 df 列中唯一值的列表
aa 2
aaa 10
aaaa 14
aaaaa 2
aaaaaa 1
aableasing 25
yy 1
yyy 6
überimexcars 1
üüberimexcars 1
üüüüüüüüü 2
目的是通過按名稱分組來“清理”數據。
因此:
所需的 output 如下所示
a 29
aableasing 25
y 7
überimexcars 2
üüüüüüüüü 2
我在想類似的東西
df['name'] = df['name'].astype(str).str.replace('aaa', 'a')
但是,我必須為每封信都這樣做。 此外,這並不是真正有效的做事。
在這種情況下使用正則表達式可能是更好的選擇?
感謝任何幫助的人!
這應該可以解決問題:
df['name']=df['name'].replace(r"^(.)\1*$", r"\1", regex=True)
一些解釋:
它將嘗試將整個單元格(從開頭 - ^
,直到結尾 - $
)與任何字符(.)
匹配,然后重復 0 次或更多次(引用第一組,用方括號表示) - \1*
並且所有這些都將被第一組\1
替換(如果僅匹配)。
如果 t 包含一個字符串,例如 'aaaaa',請嘗試以下操作:
t.join(sorted(set(t), key=t.index))
你會得到'a'。
現在在您的 dataframe 和組上運行它
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.