Декартовой продукт даст вам ниже, а не то, что вы вставили:
1 101 201
1 101 201
2 102 202
2 102 202
Вы можете добиться этого, добавив фиктивный столбец к вашей df как:
d1['key'] = 1
In [710]: d1
Out[710]:
x1 x2 x3 key
0 1 101 201 1
1 2 102 202 1
Затем присоединитесьd1
с самим собой на key
для декартового произведения:
In [819]: pd.merge(d1,d1,on='key')[['x1_x','x2_x','x3_x']]
Out[819]:
x1_x x2_x x3_x
0 1 101 201
1 1 101 201
2 2 102 202
3 2 102 202
Дайте мне знать, если это то, что вы хотите?