我有一列带有一些名称的单词,这些单词需要大写,例如Mcgill到McGill,Mcneill到McNeill,O'donnell到O'Donnell等。
我知道有些文本编辑器可以通过在捕获的组之前添加一个来做到这一点,\U
但这在熊猫中不起作用。
这是我尝试过的。这有可能吗?
import pandas as pd
names = pd.Series(["Mcgill", "Mcneill", "O'donnell", "Mctavish"])
names.replace(r'\bMc([a-z])', r'Mc\U$1', inplace=True)
您可以apply()
结合使用re.sub()
:
import pandas as pd, re
names = pd.Series(["Mcgill", "Mcneill", "O'donnell", "Mctavish"])
def capitalize(name):
rx = re.compile(r'(?:(?<=Mc)|(?<=O\'))([a-z])')
def repl(m):
char = m.group(1)
return char.upper()
return rx.sub(repl,name)
names = names.apply(capitalize)
# 0 McGill
# 1 McNeill
# 2 O'Donnell
# 3 McTavish
这是你所追求的吗?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句