加入两个数据框以获得笛卡尔积

Join two dataframes to get cartesian product

如何连接两个数据帧并获得两个数据帧中所有行的笛卡尔积。

df1:

   values
0       4
1       5
2       6

df2:

   values
0       7
1       8
2       9

预期输出:

   values_x  values_y
0         4         7
1         4         8
2         4         9
3         5         7
4         5         8
5         5         9
6         6         7
7         6         8
8         6         9

试试这个:

pd.merge(df1, df2, how = 'outer', left_on = 'value1', right_on = 'value2')

您可以使用虚拟列合并:

df1.assign(dummy=1).merge(df2.assign(dummy=1), on='dummy', how='outer').drop('dummy', axis=1)

输出:

   values_x  values_y
0         4         7
1         4         8
2         4         9
3         5         7
4         5         8
5         5         9
6         6         7
7         6         8
8         6         9