如何为熊猫中的多个变量按列创建所有组合?
发布于 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 个回答
-
使用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