Python刪除名稱字符串末尾的中間首字母

我試圖刪除名稱字符串末尾的中間首字母。數據外觀的示例如下:

df = pd.DataFrame({'Name': ['Smith, Jake K',
                            'Howard, Rob',
                            'Smith-Howard, Emily R',
                            'McDonald, Jim T',
                            'McCormick, Erica']})

我目前正在使用以下代碼,它適用于除Erica McCormick之外的所有名稱。我首先使用正則表達式來識別所有的大寫字母。然后,對于任何包含3個或更多大寫字母的行,我從字符串中刪除[:-1](試圖刪除中間的首字母和額外的空格)。

df['Cap_Letters'] = df['Name'].str.findall(r'[A-Z]')
df.loc[df['Cap_Letters'].str.len() >= 3, 'Name'] = df['Name'].str[:-1]

這將產生以下結果:

如您所見,這正確地刪除了除McCormick、Erica之外的所有姓名的中間首字母。原因是她有3個大寫字母,但沒有中間的首字母,這錯誤地刪除了艾麗卡中的“a”。

? 最佳回答:

您可以直接使用Series.str.replace

df['Name'] = df['Name'].str.replace(r'\s+[A-Z]$', '', regex=True)

Output:

0            Smith, Jake
1            Howard, Rob
2    Smith-Howard, Emily
3          McDonald, Jim
4       McCormick, Erica
Name: Name, dtype: object

請參閱regex演示。正則表達式詳細信息:

  • \s+-一個或多個空格
  • [A-Z]-大寫字母
  • $-字符串的結尾。
主站蜘蛛池模板: 一区二区在线视频免费观看| 日韩精品福利视频一区二区三区| 国产乱码精品一区二区三区麻豆 | 久久精品午夜一区二区福利| 精品香蕉一区二区三区| 精品国产一区二区22| 精品国产一区二区三区久久狼| 久久精品一区二区免费看| 久久国产高清一区二区三区| 国产在线一区二区杨幂| 国产三级一区二区三区| 精品欧美一区二区在线观看 | 蜜桃视频一区二区三区在线观看| 一区二区高清在线| 波多野结衣中文一区| 国产成人一区二区三区免费视频 | 精品久久国产一区二区三区香蕉| 日本福利一区二区| 亚洲日韩精品国产一区二区三区| 日韩精品视频一区二区三区 | 一区二区三区国模大胆| 国产一区二区三区在线观看免费 | 91video国产一区| 亚洲AV福利天堂一区二区三| 国产激情з∠视频一区二区| 国产自产在线视频一区| 三上悠亚日韩精品一区在线| 国产一区二区三区高清在线观看 | 无码精品一区二区三区| 蜜臀AV无码一区二区三区| 成人H动漫精品一区二区| 日韩AV片无码一区二区不卡| 国产一区二区在线观看麻豆| 国产精品福利区一区二区三区四区| 国产精品第一区第27页| 无码少妇精品一区二区免费动态| 亚洲码一区二区三区| 精品一区二区久久久久久久网精| 动漫精品一区二区三区3d| 成人一区二区免费视频| 中文字幕精品一区二区日本|