Поиск совпадающих строк между двумя df с учетом приоритетов столбцов
У меня есть следующий вложенный файл json, содержащий некоторые переменные и их значения (в иерархическом формате):
"1": {
"var1": 1,
"L1": {
"var2": 14,
"L2": {
"var3": 0,
"L3": {
"var4": 90
}
}
}
},
"2": {
"var1": 1,
"L1": {
"var2": 17,
"L2": {
"var5": 1,
"L3": {
"var6": 6
}
}
}
},
...and so on
Я использовал функцию normalize() для анализа этого json-файла, а затем использовал pivot(), чтобы преобразовать его в df с именем source_df:
sourde_df>>
index var1 L1.var2 L1.L2.var3 L1.L2.var5 L1.L2.L3.var4 L1.L2.L3.var6
id_1 1 14 0 nan 90 nan
id_2 1 17 nan 1 nan 6
Теперь мне нужно перебрать другой df (raw_data) и найти строки, значения которых соответствуют source_df, и назначить им соответствующий «id». Если у меня есть raw_df вроде этого:
raw_df>>
index var1 var2 var3 var4 var5 var6
1 1 14 0 90 11 0
2 1 17 2 88 1 6
3 1 14 0 90 1 92
4 10 7 0 4 0 92
В конце должно получиться так:
raw_df>>
index var1 var2 var3 var4 var5 var6 id
1 1 14 0 90 11 0 id_1
2 1 17 2 88 1 6 id_2
3 1 14 0 90 1 92 id_1
4 10 7 0 4 0 92 nan
Поскольку у меня нет префиксов выравнивания (L1, L2, ...) в моем raw_df, как мне найти совпадающие строки с учетом иерархии переменных? Любая помощь будет принята с благодарностью.