从抓取的数据中重新格式化字符串以满足关键字参数

Reformatting Strings from Scraped Data in order to Satisfy Keyword Argument

我正在从事一个棒球分析项目,在该项目中,我通过网络抓取给定球队在给定日期的实时阵容。

我目前在抓取的数据框中收到的名称存在问题——在随机情况下,玩家名称将采用不同的格式并且无法使用(我将玩家名称传递给统计功能只有在我的球员姓名格式正确时才能使用。)

示例:

     Freddie Freeman
     Ozzie Albies
     Ronald Acuna
     Austin RileyA. A.Riley 
     Dansby Swanson
     Adam Duvall
     Joc PedersonJ. J.Pederson

如您所见,大多数名称的格式都是正常的,但是,在少数情况下,会显示玩家名称,以及他们名字的第一个字母添加到他们的姓氏,后跟一个句点,然后是他们的名字首字母和姓氏。 如果我可以转:Austin RileyA。 A.Riley,进入 Austin Riley,然后一切正常。

这是我提取的所有团队和数据的一致主题——有时有一些球员的名字采用这种格式——名字 + 姓氏 + 名字的第一个字母。 + 第一个首字母。 + 姓氏

我正在尝试找出一种重新格式化名称的方法,以便它们可用,并且以 generalized/applicable 任何可能名称的方式进行。

如果主题真的一致你可以这样做:

name_list = ['Freddie Freeman',
         'Ozzie Albies',
         'Ronald Acuna',
         'Austin RileyA. A.Riley ',
         'Dansby Swanson',
         'Adam Duvall',
         'Joc PedersonJ. J.Pederson']
new_list = []
for n in name_list:
    new_list.append(n[:n.find('.')-1])
new_list

有几种方法可以实现这一点(也可以使用我不推荐的正则表达式)。我发布的示例是我认为最好的 (find() documentation)