dimanche 6 janvier 2019

How to check each row of Pandas dataframe's column if it CONTAINS string (instead of a full match)? [duplicate]

This question already has an answer here:

"receiverlist" is a Pandas dataframe containing unique receivers in a bank statement and their total amounts. I've also initiated a new column "Category" where values are 0 at first.

    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

Goal:

I want to run a function for every receiver in the "Receiver" column so that every receiver that contains a given string (searchterm), gets a given category (givecategory) in the "Category" column. However, my current function only works if the value fully matches, but I don't know how make partial matches enough.

The current function looks like this:

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

I then run the categorize-function:

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

So the question is: how can I give a receiver that contains the given "xyz" (or whatever partial searchterm) add the given givecategory into its Category column?

Aucun commentaire:

Enregistrer un commentaire