Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何为pandas中的多个变量按列创建所有组合?_Python_Loops_Dataframe_Combinations_Itertools - Fatal编程技术网

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

Python 如何为pandas中的多个变量按列创建所有组合?,python,loops,dataframe,combinations,itertools,Python,Loops,Dataframe,Combinations,Itertools,对于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

对于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

使用Itertools.product,我可以创建列表的所有组合,然后您可以将每个组合写入数据帧

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