我将非常感谢您的帮助。我的数据框是这种格式
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']))
我正在学习熊猫,只是被卡住了。
答案 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
让我知道这是否是您想要的吗?