在熊猫中创建配对列

时间:2017-08-11 15:30:42

标签: python pandas dataframe

df=pd.DataFrame(np.random.randn(4,4), columns=['a','b','c','d'])

   a       b      c     d
0 1.23   -1.25  0.15   1.41
1 0.64   -0.16  0.46   -1.06
2 -0.98  0.54   -0.81  0.33
3 1.71   0.95   1.01   -0.81

如何创建包含所有可能列对的数据框?

p1  p2    c1     c2
a   b    1.23   -1.25
a   b    0.64   -0.16
a   b    -0.98  0.54
a   b    1.71   0.95
a   c    1.23   0.15
a   c    0.64   0.46
a   c    -0.98  -0.81
a   c    1.71   1.01
... ...  ...   ...
c   d    0.15   1.41
c   d    0.46   -1.06
c   d    -0.81  0.33
c   d    1.01   -0.81

1 个答案:

答案 0 :(得分:2)

由于您希望组合使用两个,您可以使用2008-10-17列,然后使用cumcount()来获取索引。希望它有所帮助

itertools.combinations

输出:

   p1 p2        c1        c2
0   a  b -0.157408 -0.293641
1   a  b -0.205898 -0.527494
2   a  b -0.740385  1.058200
3   a  b  2.163202  0.584529
4   a  c -0.157408  0.824047
5   a  c -0.205898  0.016703
.
.
.
22  c  d  0.260635 -0.958339
23  c  d -0.641043 -1.199849