Python 熊猫-用大写字母替换字符串中的一个字母 我有一个栏目,有几个名字需要大写,比如麦吉尔到麦吉尔,麦克尼尔到麦克尼尔,奥唐奈到奥唐奈等等。
我知道一些文本编辑器可以通过使用Python 熊猫-用大写字母替换字符串中的一个字母 我有一个栏目,有几个名字需要大写,比如麦吉尔到麦吉尔,麦克尼尔到麦克尼尔,奥唐奈到奥唐奈等等。,python,regex,pandas,Python,Regex,Pandas,我知道一些文本编辑器可以通过使用\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()结合使用: 将熊猫作为pd、re导入 名称=pd.系列
\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()
结合使用:
将熊猫作为pd、re导入
名称=pd.系列([“麦吉尔”、“麦克尼尔”、“奥唐纳”、“麦克塔维什”])
def大写(名称):
rx=重新编译(r’(?:)?
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