У меня есть два кадра данных с несколькими общими столбцами. Я хочу сделать соединение между двумя кадрами данных, но с водопадающей логикой c на основе порядка столбцов. Например, в приведенном ниже примере я хочу, чтобы столбец key1 имел приоритет. Если key1 имеет значение null или если key1 не может быть найден в df_map, используйте столбец key2 и т. Д. c.
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