Producto cartesiano performante (CROSS JOIN) con pandas

El contenido de esta publicación originalmente estaba destinado a ser parte dePandas Merging 101, pero debido a la naturaleza y el tamaño del contenido requerido para hacer justicia a este tema, se ha trasladado a su propia QnA.

Dados dos marcos de datos simples;

left = pd.DataFrame({'col1' : ['A', 'B', 'C'], 'col2' : [1, 2, 3]})
right = pd.DataFrame({'col1' : ['X', 'Y', 'Z'], 'col2' : [20, 30, 50]})

left

  col1  col2
0    A     1
1    B     2
2    C     3

right

  col1  col2
0    X    20
1    Y    30
2    Z    50

El producto cruzado de estos marcos se puede calcular y se verá así:

A       1      X      20
A       1      Y      30
A       1      Z      50
B       2      X      20
B       2      Y      30
B       2      Z      50
C       3      X      20
C       3      Y      30
C       3      Z      50

Cuál es el método más eficaz para calcular este resultado?

Respuestas a la pregunta(3)

Su respuesta a la pregunta