我正在做一个棒球分析项目,在这个项目中,我从网上抓取给定球队在给定日期的实时阵容。
我目前面临着一个问题,我在收集的数据框中收到的名字——在随机情况下,球员的名字会以不同的格式出现,并且是不可用的(我把球员的名字传递给一个统计函数,只有当我有球员的名字格式正确时,它才会工作)。
的例子:
Freddie Freeman
Ozzie Albies
Ronald Acuna
Austin RileyA. A.Riley
Dansby Swanson
Adam Duvall
Joc PedersonJ. J.Pederson
正如你所看到的,大多数名字都是正常格式化的,然而,在少数情况下,玩家的名字会被显示出来,他们的名字的第一个字母加到他们的姓氏上,后面是一个句号,然后是他们的首字母和姓氏。如果我能变身:奥斯汀·莱利耶。a .莱利,变成奥斯汀·莱利,那么一切都会好起来的。
这是贯穿于我所收集的所有球队和数据的一致主题——有时会有一些球员的名字以这种方式格式化——FirstName + LastName+First Name的第一个字母。+首字母缩写。+姓氏
我正试图找出一种方法来重新格式化的名称,使他们是可用的,这样做的方式是通用/适用于任何可能的名称。
如果主题是一致的,你可以这样做:
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
)