我有一个Pandas数据框列,其中包含类似于字符串McNally, King (XYZ)的元素。我想保留姓氏,名字并删除其他所有内容。因此,清洁后McNally, King (XYZ)应该是McNally, King

我尝试了以下两个功能,但未获得预期的结果:

df['name'] = df['name'].str.extract(r'\w+\,\s[A-Z][a-z]+', expand=False)

df['name'] = df['name'].replace({r'\w+\,\s[A-Z][a-z]+' : r'\w+\,\s[A-Z][a-z]+'}, regex=True)


第二个代码用正则表达式本身替换子字符串,而第一个代码从字符串中提取名称,但我想保留该名称并删除所有其他名称。

编辑:
样本数据:

Reyes, Rebecca  L (XYZ)
Derry, Odd     P (XYZ)
Garza, Per-Laura   A (MNP)
Fernandez, Rafael   Carl (XYZ)


预期产量:

Reyes, Rebecca
Derry, Odd
Garza, Per-Laura
Fernandez, Rafael


我想就地编辑,即修改现有的数据名称本身,而不创建新的数据名称。

最佳答案

您可以尝试如下操作:

df = pd.DataFrame({'name':['McNally, King  (XYZ)']}, index=[0])
df['name'].str.extract(r'(\w+,\s\w+)')


输出:

0    McNally, King
Name: name, dtype: object

关于python - Python Pandas -提取并替换,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47333776/

10-08 21:44