У меня есть CSV-файл со столбцами img_A, img_B и целевыми значениями.
CSV 1:
img_A img_B target
img1.png img2.png 1
img1.png img3.png 1
img1.png img4.png 0
img1.png img5.png 1
img6.png img1.png 0
У меня есть другой огромный CSV-файл, содержащий все изображенияи их векторы функций, такие как:
csv2:
img f1 f2 f3 f4 f5
img1.png 0 1 0 1 0
Мне нужен объединенный вектор объектов, такой как:
img_A img_B f1_A f2_A f3_A f4_A f5_A f1_B f2_B f3_B f4_B f5_B target
img1.png img_2.png 0 1 0 1 0 0 1 0 1 0 1
Пока мойПервое впечатление - получить декартово произведение путем слияния csv2 с самим собой, а затем отфильтровать его с комбинациями столбцов в csv1. Я получаю ошибку памяти, поскольку форма csv2 составляет около 20000 x 512, а форма csv1 - около 75000 x 3.
Я попробовал это:
df = df.assign(key=1).merge(df.assign(key=1), on="key", suffixes=["_A", "_B"]).drop("key", axis=1) # memory error
Хотя я пытался разбить данные на куски, получение результата длилось вечно.
Может кто-нибудь предложить оптимальный способ сделать это?