首页 > 解决方案 > 如何在 pandas 列中搜索字符串并根据该字符串追加到行?

问题描述

我有一个 pandas 数据框,我想搜索 columnA中的字符串,如果有匹配项我想追1加到一个新列,如果没有匹配项我想追加一个0.

我的 df 目前看起来像:

Column A          | Column B | Column C
company one       |   314    |   0.9
company one toast |   190    |   0.3
www.companyone    |   380    |   0.87
companyone home   |   850    |   0.1
toaster supplies  |   1100   |   0.5
toast rack        |   200    |   0.7
...

我正在尝试编写一个可以读取的函数column A,如果与 company one 或 companyone 匹配,则在行尾附加 1。如果没有匹配,则追加 0。我正在寻找的输出是:

    Column A          | Column B | Column C | Branded
    company one       |   314    |   0.9    |   1
    company one toast |   190    |   0.3    |   1
    www.companyone    |   380    |   0.87   |   1
    companyone home   |   850    |   0.1    |   1
    toaster supplies  |   1100   |   0.5    |   0
    toast rack        |   200    |   0.7    |   0
    ...

我试过这个功能:

def branded(table):

    if 'company.*?one' in table[table['Column A']]:
        table['Branded'] = 1
    else:
        table['Branded'] = 0

    return table.head()

但是我得到一个KeyError. 我不确定我错过了什么。

标签: python-3.xpandas

解决方案


你可以这样做:

df['Branded'] = df['Column A'].str.contains('company.*?one')*1

推荐阅读