python - 如何聚合映射表?
问题描述
我不知道如何将我的问题用语言表达出来,所以我无法具体搜索。我搜索了一段时间,但找不到适合我的问题的解决方案。我知道我可以通过多次迭代所有行来创建自定义解决方案,但我希望有一种更有效的方法来解决问题。这是我拥有的数据框:
id_old id_new
A1 A2
A2 A3
A4 A5
这是一个映射表,我想更改第一行,因为 ID 已再次更新。
我寻找这个结果:
id_old id_new
A1 A3
A2 A3
A4 A5
欢迎任何帮助:-)
最好的
解决方案
国际大学联盟:
尝试通过mask()
和bfill()
:
df['id_new']=df['id_new'].mask(df['id_new'].isin(df['id_old'])).bfill()
解释:
检查“id_new”的值是否在“id_old”中isin()
所以isin()
方法给了我们一个布尔序列,所以我们将该序列传递给mask()
方法,所以基本上条件匹配mask()
方法放置的位置,NaN
因为我们将它链接在“id_new”列上,所以它将给出NaN
掩码中的值在哪里是真,哪里是假它将给出“id_new”列的值
bfill()
最后通过方法填充值
推荐阅读
- java - 为什么循环中的“中断”不起作用
- signature - 尝试检索 transloadit 中的程序集列表时出现 INVALID_SIGNATURE 错误
- python - 如何在字符串的python脚本中执行函数
- css - 如何在反应引导中使徽标响应
- r - 陷入无限循环,我看到的问题在哪里?
- r - 如何检查 tibble 中是否存在列向量
- javascript - 如何防止 PHP 睡眠功能停止我的 HTML 页面
- kubernetes - Jaeger Streaming Strategy:如何在 CRD 中配置 Kafka 凭据
- javascript - 在 BigCommerce Stencil 中连接自定义按钮
- python - 我的用于查找直线斜率的 python 程序正在返回某些坐标的错误,而其他坐标则可以正常工作