首页 > 解决方案 > 如果它包含字符串(而不是完全匹配),如何检查 Pandas 数据框列的每一行?

问题描述

“receiverlist”是一个 Pandas 数据框,其中包含银行对账单中的唯一接收者及其总金额。我还启动了一个新列“类别”,其中值最初为 0。

    Receiver     Amount Category
140 abcreceiver  5000   0
39  xyzreceiver  3000   0
103 asdreceiver  562.51 0
148 ertreceiver  416.98 0
62  yuireceiver  231.00 0

目标:

我想为“Receiver”列中的每个接收器运行一个函数,以便每个包含给定字符串(searchterm)的接收器在“Category”列中获取给定的类别(givecategory)。但是,我当前的函数仅在值完全匹配时才有效,但我不知道如何使部分匹配足够。

当前函数如下所示:

def categorize(searchterm, givecategory):
    receiverlist["Category"] = np.where(receiverlist["Receiver"] == searchterm, givecategory, receiverlist["Category"])
    return receiverlist["Category"]

然后我运行分类功能:

receiverlist["Category"] = categorize("xyz", "Receiver Xyz")

所以问题是:如何给包含给定“xyz”(或任何部分搜索词)的接收器添加给定的给定类别到其类别列?

标签: pandasdataframeif-statementcontainsstring-matching

解决方案


推荐阅读