为了账号安全,请及时绑定邮箱和手机立即绑定

使用 lamda 函数检查 URL 中是否存在列中的值

使用 lamda 函数检查 URL 中是否存在列中的值

慕丝7291255 2021-10-19 10:31:16
我有一个有 2 列的数据框。一个是 URL,另一个是用户名。+----------------------------------------+---------------+|                  URL                   |   Username    |+----------------------------------------+---------------+| johnsmith/stackoverflow.com/?=abc      | johnsmith     || michealrod/stackoverflow.com/?=payment | michealrod    || stephaniejean/stackoverflow.com/?=abc  | stephaniejean |+----------------------------------------+---------------+我想编写一个 lambda 函数来检查 URL 中是否存在用户名。我正在尝试写这样的东西,但出现错误df['exists'] = df.apply(lambda x : df['Username'] in df['URL']).any()所以基本上我试图在用户名是 URL 的一部分时获得 TRUE,如果用户名在 URL 中不存在则获得 False。
查看完整描述

2 回答

?
德玛西亚99

TA贡献1770条经验 获得超3个赞

假设您的数据是干净的,列表理解是相对有效的:

df['exists'] = [x in y for x, y in zip(df['Username'], df['URL'])]

您可以使用apply但性能较差:

df['exists'] = df.apply(lambda row: row['Username'] in row['URL'], axis=1)


查看完整回答
反对 回复 2021-10-19
?
噜噜哒

TA贡献1784条经验 获得超7个赞

检查 numpy core.defchararray.find

df['exists']=np.core.defchararray.find(df.URL.values.astype(str),df.Username.values)!=-1



查看完整回答
反对 回复 2021-10-19
  • 2 回答
  • 0 关注
  • 202 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信