Apply user-defined functions over a python datatable (not pandas dataframe)?

Viewed 241

Datatable is popular for R, but it also has a Python version. However, I don't see anything in the docs for applying a user defined function over a datatable.

Here's a toy example (in pandas) where a user function is applied over a dataframe to look for po-box addresses:

df = pd.DataFrame({'customer':[101, 102, 103],
                   'address':['12 main st', '32 8th st, 7th fl', 'po box 123']})

customer | address
----------------------------
101      | 12 main st
102      | 32 8th st, 7th fl
103      | po box 123


# User-defined function:
def is_pobox(s):
    rslt = re.search(r'^p(ost)?\.? *o(ffice)?\.? *box *\d+', s)
    if rslt:
        return True
    else:
        return False

# Using .apply() for this example:
df['is_pobox'] = df.apply(lambda x: is_pobox(x['address']), axis = 1)

# Expected Output:
customer | address          | rslt
----------------------------|------
101      | 12 main st       | False
102      | 32 8th st, 7th fl| False
103      | po box 123       | True

Is there a way to do this .apply operation in datatable? Would be nice, because datatable seems to be quite a bit faster than pandas for most operations.

0 Answers
Related