У меня есть два кадра данных, df_1 и df_2
df_1 имеет 30k + строк и выглядит так
Col_1_1 Col_1_2 CA_CB
a c CA
a c CB
a d CA
b c CA
b d CB
b d CB
b c CA
Я хотел бы создать два столбца в df_1, используя данные, поступающие из df_2, если столбец CA_CB = "CB"
df_2 имеет 1 тыс. Строк и выглядит следующим образом (Col_2_1 имеет уникальные значения)
Col_2_1 Col_2_2
a data on a
b data on b
c data on c
d data on d
Мой вывод должен выглядеть так:
Col_1_1 Col_1_2 CA_CB Col_target_1 Col_target_2
a c CA "X" "X"
a c CB data on a data on c
a d CA "X" "X"
b c CA "X" "X"
b d CB data on b data on d
b d CB data on b data on d
b c CA "X" "X"
В настоящее время я делаю то, что создаю Col_target_1 и Col_target_2 с
df_1["Col_target_1"] = "X"
df_2["Col_target_2"] = "X"
for i in range(len(df_1)):
if df_1["CA_CB"][i] == "CB":
for j in range(len(df_2)):
if df_1["Col_1_1"][i] == df_2["Col_2_1"][j]:
df_1["Col_target_1"][i] = df_2["Col_2_2"][j]
if df_1["Col_1_2"][i] == df_2["Col_2_1"][j]:
df_1["Col_target_2"][i] = df_2["Col_2_2"][j]
Это делает ту работу, которую я хочу. Но на это уходит более 20 минут, и мне было интересно, можно ли запустить его быстрее, используя другой метод.
Заранее спасибо.