在Python中,如何将一列中的字符串与另一列中的字符串相匹配?

2024-10-02 04:37:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个用户密码列:

 user_name       password   first_name  last_name  uses_name
 vance.jennings  vance      vance       jennings   true
 bino.lapsi      dflkjdk    bino        lapsi      false

我已经在这里手动填写了用户名,但通常我需要检查用户的名字或姓氏==密码。你知道吗

请告诉我怎么做?你知道吗

以下是我迄今为止尝试过的:

users['uses_name'] = (users['password'].isin(users['first_name']) | 
                     users['password'].isin(users['last_name']))

Tags: 用户nametrue密码passwordusersfirstlast
2条回答

我认为您需要通过|OR比较列和链条件:

users['uses_name'] = (users['last_name'] == users['password'])|
                     (users['first_name'] == users['password'])

或者将两列与^{}进行比较,并通过^{}获得至少一个True

users['uses_name'] = users[['first_name', 'last_name']].eq(users['password'], axis=0).any(axis=1)

print (users)
        user_name password first_name last_name  uses_name
0  vance.jennings    vance      vance  jennings       True
1      bino.lapsi  dflkjdk       bino     lapsi      False

另一个使用pd.DataFrame.apply()的选项:

users.apply(lambda s: s['password'] == s['first_name'] or s['password'] == s['last_name'], axis=1)

相关问题 更多 >

    热门问题