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
答案 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