How to create all combinations column wise for multiple variables in pandas?

前端 未结 1 1459
半阙折子戏
半阙折子戏 2020-12-18 08:25

For a given range for n variables. I have taken n=3 as an example.

A : [1,3]
B:  [5,10,12]
C: [100,113]

Note the values in the above range

相关标签:
1条回答
  • 2020-12-18 09:16

    Using Itertools.product I can make all combinations of a list, afterwards you can write each combination to your DataFrame

    import itertools
    
    A = [1, 3]
    B = [5, 10, 12]
    C = [100, 113]
    
    a = [A, B, C]
    
    print(list(itertools.product(*a)))
    # Outputs [(1, 5, 100), (1, 5, 113), (1, 10, 100), (1, 10, 113), (1, 12, 100), (1, 12, 113), (3, 5, 100), (3, 5, 113), (3, 10, 100), (3, 10, 113), (3, 12, 100), (3, 12, 113)]
    

    idx = ['c{}'.format(i) for i in range(1, len(data)+1)]
    data = list(itertools.product(*a))
    df = pd.DataFrame(data, index=idx, columns=list('abc')).T
    
    df
    
        c1   c2   c3   c4   c5   c6   c7   c8   c9  c10  c11  c12
    a    1    1    1    1    1    1    3    3    3    3    3    3
    b    5    5   10   10   12   12    5    5   10   10   12   12
    c  100  113  100  113  100  113  100  113  100  113  100  113
    
    0 讨论(0)
提交回复
热议问题