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

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日

悬赏问题

  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制