【问题标题】:How to extract strings from column in python如何从python中的列中提取字符串
【发布时间】:2020-05-25 11:31:44
【问题描述】:

我有一列包含客户的姓名。 现在,我想创建另一个必须只包含以下标题的列: ((先生),(夫人),(博士))

我的专栏是这样的:

print(df['Name'])

        Name
0 William, Mr. Henry
1 Mrs Meryam Hinadi
2 Dr. Richard Barodi
3 Yadar Danari Mr.
4 Gadi Dr. Nawsi

我定义了这个函数,但它不能正常工作。我一定是错过了什么。请纠正我。

def get_status(cols):
        name = cols[0]

        if name == name.str.contains('Mrs'):
            return 'Mrs'
        elif name == name.str.contains('Mr.'):
            return 'Mr.'
        elif name == name.str.contains('Dr.'):
            return 'Dr.'
        else:
            return name

df['Titles'] = df['Name'].apply(get_status)

谢谢。

【问题讨论】:

    标签: python-3.x function apply


    【解决方案1】:

    试试这个:

    def get_status(cols):
        if ('Mrs') in cols:
            return 'Mrs'
        elif ('Mr.') in cols:
            return 'Mr.'
        elif ('Dr.') in cols:
            return 'Dr.'
        else:
            return cols
    
    df['Titles'] = df['name'].apply(get_status)
    

    输出:

        name               Titles
    0   William, Mr. Henry  Mr.
    1   Mrs Meryam Hinadi   Mrs
    2   Dr. Richard Barodi  Dr.
    3   Yadar Danari Mr.    Mr.
    4   Gadi Dr. Nawsi      Dr.  
    

    【讨论】:

    • 我得到了这个错误:RecursionError:调用 Python 对象时超出了最大递归深度 --> 但我通过返回 cols 更改(返回名称)来纠正它。也许你应该编辑你的答案。
    猜你喜欢
    • 2018-05-31
    • 1970-01-01
    • 1970-01-01
    • 2018-12-13
    • 1970-01-01
    • 2021-07-01
    • 1970-01-01
    • 2018-08-02
    相关资源
    最近更新 更多