【问题标题】:need to all extract the content inside the brackets in pandas dataframe需要全部提取熊猫数据框中括号内的内容
【发布时间】:2017-06-26 01:53:46
【问题描述】:

我只需要提取 pandas 数据框中括号内的内容。我尝试使用 str.exratct() 但它不起作用。我需要提取帮助

数据:(在数据帧中,这是来自一行的样本数据)

作者:陈天旭(陈天旭)[1];特里比特 MA (特里比特马克 A.)[ 2 ] ;杨毅(杨毅)[3];李小美(李小梅)[4]

【问题讨论】:

    标签: pandas dataframe text-extraction data-extraction


    【解决方案1】:

    您可以使用regular expression:

    import pandas as pd
    import re
    
    dataset = pd.DataFrame([{'DATA': 'By:Chen TX (Chen Tianxu)[ 1 ] ; Tribbitt MA (Tribbitt Mark A.)[ 2 ] ; Yang Y (Yang Yi)[ 3 ] ; Li XM (Li Xiaomei)[ 4 ]'}])
    print(dataset)
    

    数据框是:

       DATA
    0  By:Chen TX (Chen Tianxu)[ 1 ] ; Tribbitt MA (Tribbitt Mark A.)[ 2 ] ; Yang Y (Yang Yi)[ 3 ] ; Li XM (Li Xiaomei)[ 4 ]
    

    然后,使用 regular expressionlambda 函数,这样您就可以提取名称并将其保存到名为 names 的不同列中:

    # regular expression from: https://stackoverflow.com/a/31343831/5916727
    dataset['names'] = dataset['DATA'].apply(lambda x: re.findall('\((.*?)\)',x))
    print(dataset['names'])
    

    names 列的输出为:

    0    [Chen Tianxu, Tribbitt Mark A., Yang Yi, Li Xiaomei]
    

    【讨论】:

    • @venkatesh_Babu 太棒了!如果你愿意,你可以接受答案。 Happy Coding.
    • 但是如何删除 [ ] ?你能帮帮我吗?尝试了替换功能,但没有用
    • 你的意思是你想要Chen Tianxu, Tribbitt Mark A., Yang Yi, Li Xiaomei作为单个字符串,因为现在它是用,分隔的字符串列表
    猜你喜欢
    • 1970-01-01
    • 2016-10-21
    • 2021-11-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    • 1970-01-01
    • 2021-12-17
    • 2020-01-25
    相关资源
    最近更新 更多