Unir dos DataFrames sin columnas comunes para cálculos

Estoy tratando de hacer un cálculo basado en la información que tengo en dos conjuntos de datos diferentes. Necesito que toda la información para el primer dataframe se vuelva a leer tantas veces como la información del segundo dataframe.

Ejemplo:

DataFrame 1:

name price A 1 B 2 

DataFrame 2:

  currency value Dollar 1 Euro 2 

Rendimiento esperado:

DataFrame fusionado:

 name price currency Value A 1 Dollar 1 A 1 Euro 1 B 2 Dollar 4 B 2 Euro 4 

He estado intentando algo similar, con el uso de una aplicación y una lista, y luego la convertí en un DataFrame, pero sin resultados. De alguna manera, los valores de currs siempre se repiten para cada nombre:

 lst = [] for index, currs in currencies.iterrows(): lst.append(prices.apply(lambda pmRow: pd.Series({'name':pmRow['prices'], 'curr':currs['currency']}), axis=1)) 

¿Alguna sugerencia? ¡Gracias!

Parece que necesitas cross join :

 df = pd.merge(df1.assign(A=1), df2.assign(A=1), on='A').drop('A', 1) print (df) name price currency value 0 A 1 Dollar 1 1 A 1 Euro 2 2 B 2 Dollar 1 3 B 2 Euro 2 

Y luego, si es necesario, varias columnas de price y value :

 df['value'] *= df['price'] print (df) name price currency value 0 A 1 Dollar 1 1 A 1 Euro 2 2 B 2 Dollar 2 3 B 2 Euro 4