python - Python使用瀑布逻辑在多列上加入两个熊猫数据框
问题描述
我有两个共有多列的数据框。我想在两个数据框之间进行连接,但使用基于列顺序的瀑布逻辑。例如,在下面的示例中,我希望 key1 列优先。如果 key1 为 null 或者在 df_map 中找不到 key1,则使用 key2 列等。
import pandas as pd
df_map = pd.DataFrame([["a","b", 1],["x","y", 2]], columns=["key1", "key2", "val"])
df = pd.DataFrame([[np.nan,"b"],["x", np.nan]], columns=["key1", "key2"])
res = pd.DataFrame([[np.nan,"b", 1],["x", np.nan, 2]], columns=["key1", "key2", "val"])
输入:
df
Out[120]:
key1 key2
0 NaN b
1 x NaN
df_map
Out[121]:
key1 key2 val
0 a b 1
1 x y 2
期望的输出:
res
Out[126]:
key1 key2 val
0 NaN b 1
1 x NaN 2
解决方案
推荐阅读
- c# - Discord.Net - 添加对来自命令的先前消息的反应
- angular - Kubernetes 内部服务之间的 CORS 问题
- android - 如何模拟自动化 Android Studio UI Espresso 测试套件的网络层响应?
- java - 使用 Jackson 将 JSON 映射到 ArrayList 的问题 - “超出 START_OBJECT 令牌”
- python - 在 ssh 终端中引发 Python Selenium“连接被拒绝”错误,但在常规终端中没有
- r - 使用 RMySQL 未知数据库连接到 MySQL 数据库
- c# - XML反序列化在第一个元素之后不起作用
- ruby-on-rails - AWS:S3 Bucket AWS 您无法授予公共访问权限,因为此账户的阻止公共访问设置已打开
- vue.js - 使用 WebpackDevMiddleware 404s 的客户端深度链接
- python - 如何从当前位置移动按钮