Я пытаюсь создать набор данных модели выбора из нескольких CSV (подумайте, покупают ли люди бренд продукта по заданной цене).
Небольшое представление моих данных:
import pandas as pd
d1 = {'Product': [1,1,2,2,3], 'Price': [25, 25, 22, 22,35], 'Buyer ID': ['A','B','C','D','E']}
df1 = pd.DataFrame(d1)
Где df1 содержит информацию о продуктах, которые покупатель рассматривал для покупки. Обратите внимание, что все три продукта (1, 2 и 3) доступны потребителю, когда он принимает решение о покупке.
d2 = {'Buyer Num': ['A','B','E'], 'Product': [1,1,3,], 'Purchase Decision': ['Yes','Yes','Yes']}
df2 = pd.DataFrame(d2)
df2 содержит информацию о том, какой продукт в итоге купил потребитель. Потребители A, B и E купили продукты 1, 1 и 3 соответственно.
Я попытался объединить два набора данных, используя внешнее и внутреннее соединение. Например:
df3 = df1.merge(df2,left_on='Buyer ID', right_on='Buyer Num', how='outer')
Что я получаю от внешнего соединения:
Buyer ID Price Product_x Buyer Num Product_y Purchase Decision
A 25 1 A 1.0 Yes
B 25 1 B 1.0 Yes
C 22 2 NaN NaN NaN
D 22 2 NaN NaN NaN
E 35 3 E 3.0 Yes
Однако то, что я оптимально хочу, это что-то вроде этого:
Buyer ID Price Product Purchase Decision
A 25 1 Yes
B 25 1 Yes
C 25 1 No
D 25 1 No
E 25 1 No
A 22 2 No
B 22 2 No
C 22 2 No
D 22 2 No
E 22 2 No
A 35 3 No
B 35 3 No
C 35 3 No
D 35 3 No
E 35 3 Yes
Может ли кто-нибудь сказать мне, как это сделать на Python?