pandas - 一列与使用熊猫的所有其他列组合
问题描述
我将非常感谢这里的任何帮助。我的数据框是这种格式
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']))
我正在学习熊猫,只是卡住了。
解决方案
笛卡尔积将为您提供以下内容,而不是您粘贴的内容:
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
让我知道这是否是你想要的?