我有一个有 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)
噜噜哒
TA贡献1784条经验 获得超7个赞
检查 numpy
core.defchararray.find
df['exists']=np.core.defchararray.find(df.URL.values.astype(str),df.Username.values)!=-1
添加回答
举报
0/150
提交
取消