python - Pandas 使用数据框名称替换第二个数据框中任何位置的数据,并带有 id
问题描述
我有 2 个数据框。df1 具有 anid
和 a name
,而 df2 在 d1、d2、n1 和 f1 列中具有名称。我希望匹配两个数据框中的名称列,并将 df2 中的名称替换为 df1 中的 id。
df1
id name
0 A1 Ricky
1 A2 Cal
2 A3 Jean
4 A4 Charley
df2
cal_date d1 d2 n1 f1
0 2020-01-01 Ricky Cal NaN Charley
1 2020-01-02 Ricky Jean Cal Charley
2 2020-01-03 Cal Charley Ricky NaN
3 2020-01-04 Jean Cal Ricky Charley
期望的输出:
df3
cal_date d1 d2 n1 f1
0 2020-01-01 A1 A2 NaN A4
1 2020-01-02 A1 A3 A2 A4
2 2020-01-03 A2 A4 A1 NaN
3 2020-01-04 A3 A2 A1 A4
解决方案
你不需要使用字典;你可以通过列表。
df2.replace(df1.name.values, df1.id.values, inplace=True)
推荐阅读
- asp.net - 根据年龄组动态显示结果
- node.js - 使用 aws cognito 权限规则自定义 node.js api 的授权
- django - Nginx 子域重定向过多
- javascript - 使用 POST 将 Javascript 对象数组传递给 MVC 控制器
- angular - 在角度 5 上读取 pdf 流
- angular - 错误:仅在 --prod 模式下没有 t 的提供者
- python - 在 SQLAlchemy 中访问多个数据库
- c# - 根据夏令时将日期时间(本地或 UTC)转换为莫斯科和基辅时区问题
- java - 在 Java 中运行 docker exec
- jquery - JQuery .val 不工作