我有不同列的dataframeusers
。我的目标是添加列[uses_name
],当密码与每个用户的名字或姓氏相同时,它应该是True
。在
例如,十二行中的[user_name
]包含milford.hubbard
。那么在[uses_name
]中是True
,因为[password
]和[last_name
]是相同的。在
为此,我使用正则表达式创建两个列[first_name
]和[last_name
]。当create[uses_name
]时,|
运算符有问题。我在pandas文档中读到了更多关于布尔索引的内容,但没有找到答案。在
我的代码:
import pandas as pd
users = pd.read_csv('datasets/users.csv')
# Extracting first and last names into their own columns
users['first_name'] = users['user_name'].str.extract(r'(^\w+)', expand=False)
users['last_name'] = users['user_name'].str.extract(r'(\w+$)', expand=False)
# Flagging the users with passwords that matches their names
users['uses_name'] = users['password'].isin(users['first_name'] | users['last_name'])
# Counting and printing the number of users using names as passwords
print(users['uses_name'].count())
# Taking a look at the 12 first rows
print(users.head(12))
当我试图编译这个时,我给出了一个错误:
^{pr2}$users
数据帧中的前12行,其中创建了first_name
和last_name
列:
id user_name password first_name last_name
0 1 vance.jennings joobheco vance jennings
1 2 consuelo.eaton 0869347314 consuelo eaton
2 3 mitchel.perkins fabypotter mitchel perkins
3 4 odessa.vaughan aharney88 odessa vaughan
2 3 mitchel.perkins fabypotter mitchel perkins
3 4 odessa.vaughan aharney88 odessa vaughan
4 5 araceli.wilder acecdn3000 araceli wilder
5 6 shawn.harrington 5278049 shawn harrington
6 7 evelyn.gay master evelyn gay
7 8 noreen.hale murphy noreen hale
8 9 gladys.ward lwsves2 gladys ward
9 10 brant.zimmerman 1190KAREN5572497 brant zimmerman
10 11 leanna.abbott aivlys24 leanna abbott
11 12 milford.hubbard hubbard milford hubbard
使用^{} :
你可以合并,因为它们都是串联的
既然你改变了问题,就更新一个
^{pr2}$这是有效的: users['uses_name']=(users['password']==users['first_name'])|(users['password']==users['last_name'])
相关问题 更多 >
编程相关推荐