Lin_Cainiaoyige 2022-01-07 15:35 采纳率: 71.4%
浏览 124
已结题

Python dataframe 正则表达式应用

我有一个Dataframe

df = pd.DataFrame({'content':['A Name:[MINSDDL], Code:[KRKN]','A Name:[LAVRION]','C:[ANGELA]','C:[KUMASI]']})

img

我想要用正则表达式的方法 提取Code:[] ; A Name:[] ; C:[] 里面的值
结果像这样子

img


请各位帮忙

  • 写回答

1条回答 默认 最新

  • chuifengde 2022-01-07 16:40
    关注
    import pandas as pd
    import re 
    
    def fun(se):
        r1 = re.findall(r'Code:\[(.*?)\]', se['content'])
        if r1 == []:
            r1 = ['']
        r2 = re.findall(r'A Name:\[(.*?)\]', se['content'])
        if r2 == []:
            r2 = ['']
        r3 = re.findall(r'C:\[(.*?)\]', se['content'])
        if r3 == []:
            r3 = ['']
        return r1[0], r2[0], r3[0]
    df = pd.DataFrame({'content':['A Name:[MINSDDL], Code:[KRKN]','A Name:[LAVRION]','C:[ANGELA]','C:[KUMASI]']})
    print(df)
    
    df[['B', 'C', 'D']] = df.apply(fun, axis = 1, result_type='expand')
    print(df)
    
    
    '''--result
                             content
    0  A Name:[MINSDDL], Code:[KRKN]
    1               A Name:[LAVRION]
    2                     C:[ANGELA]
    3                     C:[KUMASI]
                             content     B        C       D
    0  A Name:[MINSDDL], Code:[KRKN]  KRKN  MINSDDL        
    1               A Name:[LAVRION]        LAVRION        
    2                     C:[ANGELA]                 ANGELA
    3                     C:[KUMASI]                 KUMASI
    '''
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月18日
  • 已采纳回答 1月10日
  • 创建了问题 1月7日