如何为熊猫中的多个变量按列创建所有组合?

发布于 2021-01-29 15:00:59

对于n个变量的给定范围。我以n = 3为例。

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

注意,上述范围内的值也可以是浮点型的。

我们如何创建一个数据框,其中每一列代表输入变量的唯一组合?

    c1  c2  c3  c4  c5  c6  c7  c8  c9  c10 c11 c12
a   1   1   1   3   3   3   1   1   1   3   3   3
b   5   10  12  5   10  12  5   10  12  5   10  12
c   100 100 100 100 100 100 113 113 113 113 113 113
关注者
0
被浏览
70
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    使用Itertools.product,我可以创建一个列表的所有组合,然后您可以将每个组合写入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
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看