首页 > 解决方案 > 一列与使用熊猫的所有其他列组合

问题描述

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

x1 x2 x3 ;

1 101 201;

2 102 202

我想以这种格式进入

x1 x2 x3 ;

1 101 201;

1 102 202;

2 101 201;

2 102 202

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

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

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

数据框

标签: pandascartesian-product

解决方案


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

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

让我知道这是否是你想要的?


推荐阅读