在python数据表(不是dataframe)上应用用户定义的函数?
Datatable在R中很流行,但它也有一个。但是,我在文档中没有看到在datatable上应用用户定义函数的任何内容 以下是一个玩具示例(在熊猫中),其中用户函数应用于数据帧以查找邮政信箱地址:在python数据表(不是dataframe)上应用用户定义的函数?,python,py-datatable,Python,Py Datatable,Datatable在R中很流行,但它也有一个。但是,我在文档中没有看到在datatable上应用用户定义函数的任何内容 以下是一个玩具示例(在熊猫中),其中用户函数应用于数据帧以查找邮政信箱地址: df=pd.DataFrame({'customer':[101102103], ‘地址’:[‘主大街12号’、‘第八大街32号、第七层’、‘邮政信箱123’]} 客户地址 ---------------------------- 101 | 12主街 102 | 32第8街,第7层 103 |邮政信
df=pd.DataFrame({'customer':[101102103],
‘地址’:[‘主大街12号’、‘第八大街32号、第七层’、‘邮政信箱123’]}
客户地址
----------------------------
101 | 12主街
102 | 32第8街,第7层
103 |邮政信箱123
#用户定义的功能:
def为POU箱:
rslt=重新搜索(r'^p(ost)\.?*o(办公室)\.?*框*\d+,s)
如果rslt:
返回真值
其他:
返回错误
#在此示例中使用.apply():
df['is_pobox']=df.apply(λx:is_pobox(x['address']),axis=1)
#预期产出:
客户|地址| rslt
----------------------------|------
101 | 12主街|假
102 | 32第8街,第7层|假
103 |邮政信箱123 |正确
有没有办法做到这一点。在datatable中应用操作?会很好,因为对于大多数操作,datatable似乎比pandas快很多。支持此类功能还有一个悬而未决的问题。您可以竖起大拇指并订阅,以便在实现该功能时收到通知。还请注意,您的示例可以在不使用UDF的情况下实现:
DT[“is\u pobox”]=f.address.re\u match(r'^p(ost)\.?*o(office)\.?*box*\d+)
还请注意datatable.FExper.re\u match()
自0.11起标记为已弃用:自1.0版起,此功能将在re.
子模块中提供。支持此功能存在一个未决问题。您可以竖起大拇指并订阅,以便在实现该功能时收到通知。还请注意,您的示例可以在不使用UDF的情况下实现:DT[“is\u pobox”]=f.address.re\u match(r'^p(ost)\.?*o(office)\.?*box*\d+)
还请注意datatable.FExper.re\u match()
自0.11起标记为已弃用:自1.0版起,此功能将在re.
子模块中提供。