一列与使用熊猫的所有其他列组合

时间:2018-10-20 05:58:34

标签: pandas cartesian-product

我将非常感谢您的帮助。我的数据框是这种格式

x1 x2 x3;

11012201;

2 102 202

我想以这种格式

x1 x2 x3;

1101201;

1102202;

2 101 201;

2 102 202

我可以使用给出所有组合的笛卡尔乘积。感谢您的帮助。

list(itertools.product(tx['x1'],tx['x2'],tx['x3']))

我正在学习熊猫,只是被卡住了。

Data Frame

1 个答案:

答案 0 :(得分:1)

笛卡尔积将为您提供以下内容,而不是您粘贴的内容:

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

让我知道这是否是您想要的吗?