我有以下部分清理的DataFrame(下面的示例):
Year Artist Song
2009 Black Eyed Peas Boom Boom Pow
1984 U2 Bad
1998 Twain, ShaniaShania Twain You Belong With Me
2009 Gaga, LadyLady Gaga featuring Colby O'Donis Just Dance
2008 Winehouse, AmyAmy Winehouse Rehab
在#34;艺术家"栏中,有些数据是干净的(例如' U2'黑眼豆豆')但有些数据需要是进一步清理 - 例如Shania Twain的记录,她的名字重复了两次,Lady Gaga记录了她的名字两次,但Colby O' Donis被说了一次。理想情况下,我希望它看起来像这样:
Year Artist Song
2009 Black Eyed Peas Boom Boom Pow
1984 U2 Bad
1998 Shania Twain You Belong With Me
2009 Lady Gaga featuring Colby O'Donis Just Dance
2008 Amy Winehouse Rehab
我一直试图使用拆分,替换等等 - 这些帮助我进入了这个阶段 - 但发现无法进展,因为“艺术家”之间没有一致性。柱。
如果有人可以请求帮助我,我将不胜感激。 df有大约120,000行,所以我需要能够继续在Python中清理它。
非常感谢提前。
答案 0 :(得分:1)
这是我提出的解决方案,但这假设当艺术家姓名为" lastName,firstNamefirstName lastName"时,您的复制将始终发生。因为否则,AmyAmy Winehouse实际上可能是一个乐队的名字而且它将是一个不正确的替代品
def removeDuplicateArtist(stringInput):
if "," in stringInput:
names = stringInput.split(" ")
artist = names[1][int(len(names[1])/2):] + " "
names.remove(names[0])
names.remove(names[0])
for i in names:
artist += str(i) + " "
return artist