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

Posted

技术标签:

【中文标题】如何为熊猫中的多个变量按列创建所有组合?【英文标题】:How to create all combinations column wise for multiple variables in pandas? 【发布时间】:2017-10-03 15:59:57 【问题描述】:

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

【问题讨论】:

【参考方案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

【讨论】:

以上是关于如何为熊猫中的多个变量按列创建所有组合?的主要内容,如果未能解决你的问题,请参考以下文章

如何为列中的单元格着色?熊猫,pygsheets

如何为具有不同公式的多个 glm 调用仅加载一次数据?

如何为多级组合类设计继承

熊猫如何为每个新行爆炸几个列表项

如何为 UIPageViewController 中的所有 webViews 文本字体启用缩放

如何为查询中的条件使用变量以将查询限制为活动表单?