У меня есть два кадра данных A и B следующим образом:
A
col1 col2 col3
A B V1
A B V2
A C V1
A E V2
B
Col1 Col2 Value1 Value2
A B nan nan
A D nan nan
A C nan nan
A G nan nan
A E nan nan
Я хочу обновить столбцы Value1 и Value2 в кадре данных B на основе данных A, как если бы комбинация Col1 и Col 2 A существует в B, он обновит столбцы Value1 Value2, то есть значения из col3 в кадре данных A.
Я хочу вывод как:
Col1 Col2 Value1 Value2
A B V1 V2
A D nan nan
A C V1 nan
A G nan nan
A E nan V2
Я пробовал следующий код в python :
def update_b():
for x in b.index:
for y in a.index:
if ((a["col1"][y] == b["col1"][x]) & (a["col2"][y] == b["col2"][x])):
if (a["col3"][y] == "V1"):
b["value1"][x] = "V1"
else:
b["value2"][x] = "V2"
update_b ()
, но выдает ошибку
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().