首页 > 解决方案 > 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

标签: pythonpandasjoinwaterfall

解决方案


推荐阅读