我有两个数据集:
1.[all_users] Pandas DF 中的用户名:
id | name | gender
---------------------------
1 | Mark jackson | unknown
2 | Sara Coheorn | unknown
3 | susan boyle | unknown
.
.
2.[性别]元组列表中的姓名-性别索引:
[('Jake', 'male'),
('susan', 'female'),
('khalid', 'male'),
('mark', 'male'),
('james', 'male')]
如何从姓名-性别索引中的信息(通过更新性别列)搜索和更新第一个数据集(所有用户)?知道我必须检查性别中的姓名是否*在* all_users 中的姓名
,而不仅仅是等于
;因为用户名有时是全名、名字、昵称或数字。
不知道如何解决这个问题?
I tried doing nested for loop, but it didn't work:
for i, user in all_users.iterrows(): for gender in gender: if gender[0] in str(all_users.name[i]): all_users.gender[i] = gender[1] break else: break ```
^这总是会产生错误
最佳答案
发现问题,它是在引用all_users
索引中,我用i
调用,这是自动索引,而不是我在表中的ID。使用 all_users.at[i, 'name']
和 all_users.at[i,'gender']
效果很好。几乎没有增强。
这有效:
for i, user in all_users.iterrows():
for gender in gen:
try:
if gender[0] in str(all_users.at[i, 'name']):
all_users.at[i,'gender'] = gender[1]
break
except TypeError:
break
关于python - 如何在Python中找到两个表之间的匹配名称并更新第一个表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59505889/