【发布时间】:2019-11-20 14:04:04
【问题描述】:
my_list = ['Rob Kardashian 00052369 1987-03-17 Reality Star',
'Brooke Barry 00213658 2001-03-30 TikTok Star',
'Bae De Leon 00896351 1997-08-02 Volleyball Player',
'Jonas Blue 02369785 1990-08-02 Music Producer']
我有一个人名、身份证、出生日期和职业的列表。我想按姓名、身份证、出生日期和他们的职业来划分每个人。
我尝试了一些愚蠢的方法,但只能完成部分工作,我想知道有没有更好的解决方案?
下面是我的代码:
import re
def remove(my_list):
pattern = '[0-9]'
my_list = [re.sub(pattern, '', i) for i in my_list]
return my_list
print(remove(my_list))
但是数字不见了['Rob Kardashian -- Reality Star', 'Brooke Barry -- TikTok Star', 'Bae De Leon -- Volleyball Player', 'Jonas Blue -- Music Producer']
然后,我删除了'--'
[s.replace(' -- ',' ') for s in remove(my_list)]
['Rob Kardashian Reality Star','Brooke Barry TikTok Star','Bae De Leon Volleyball Player','Jonas Blue Music Producer']
我的预期输出将是一个数据框:
pd.DataFrame(my_list)
感谢您的帮助。
【问题讨论】:
-
我会考虑使用更明确的正则表达式来使用命名组实际匹配每个字段:regex101.com/r/rV7Azs/2