Python объединяет два pandas кадра данных в нескольких столбцах с помощью логики водопада - PullRequest
0 голосов
/ 28 марта 2020

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