python - 如何在Python中找到两个表之间的匹配名称并更新第一个表?

标签 python pandas

我有两个数据集:

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/

相关文章:

python - 宠物类 python

python - 尝试在登录时查询并根据电子邮件和密码返回名字

python - 获取 pandas 中聚合的聚合

Python Pandas - 按空行拆分 Excel 电子表格

javascript - 相当于 Javascript 中 python 的范围

python - 使用BeautifulSoup提取元素中的文本

python - 如何使用 Azure 函数和 python 写入 blob 容器中的文本文件?

python - 返回特定日期两侧最近的日期 Python/Pandas

python - 如何从 pandas 数据帧创建多级嵌套字典?

python - pandas 中的SettingWithCopyWarning : how to set the first value in a column?