Pandas эквивалент SQL CROSS JOIN (декартово произведение) [дубликат]

этот вопрос уже есть ответ здесь:

допустим, у меня было два стола:

Таблица 1:

   col1  col2
      0     1
      2     3

Таблица 2:

   col3  col4
      5     6
      7     8

в SQL, если я сделал следующее заявление:

Select *
From Table1, Table2;

Я ожидал бы получить обратно таблицу со всеми комбинациями из обеих таблиц:

col1 col2 col3 col4
   0    1    5    6
   0    1    7    8
   2    3    5    6
   2    3    7    8

есть ли способ сделать то же самое с двумя фреймами данных в панд?

1 ответов


стандартная идиома использует merge на фиктивном столбце.

df1.assign(foo=1).merge(df2.assign(foo=1)).drop('foo', 1)

   col1  col2  col3  col4
0     0     1     5     6
1     0     1     7     8
2     2     3     5     6
3     2     3     7     8