У меня есть два DataFrames, как здесь:
df1 =
sent token token2
0 a b
0 a c
0 b d
1 g h
1 h k
1 h i
1 g i
1 g k
df2 =
sent token token2 rel
0 a b A
1 g h B
1 k g C
Теперь я хочу объединить эти два DataFrames в один, который должен выглядеть следующим образом:
df_new =
sent token token2 rel
0 a b A
0 a c NaN
0 b d NaN
1 g h B
1 h k NaN
1 h i NaN
1 g i NaN
1 g k C
Однако объединение DataFrames, как это
df_new = df1.merge(df2, on=["sent","token","token2"], how="left")
Я получаю нужный вывод, кроме того, что токен ["rel"]
неверен
df_new =
sent token token2 rel
0 a b A
0 a c NaN
0 b d NaN
1 g h B
1 h k NaN
1 h i NaN
1 g i NaN
1 g k NaN
Это связано с порядком токена в df1
.Поскольку значение в ["rel"]
зависит от ["token1"] -> ["token2"]
, оно не может применить свое значение при изменении порядка.Есть ли способ сделать это в процессе слияния без создания новой версии df1
?