【发布时间】:2020-06-04 22:05:21
【问题描述】:
我有十列:n1、n2、n3、n4、n5、n6、n7、n8、n9、n10。
单行中的值加起来必须正好为 10,并且所有值必须是小于或等于 5 的非负整数。
我想根据我刚刚描述的约束条件创建一个具有所有可能排列的 DataFrame。顺序很重要(即 [5,5,0,0,0,0,0,0,0,0] 和 [5,0,5,0,0,0,0,0,0,0] 应该都是单独的行)。
这是我的尝试:
import itertools as it
permutations = [i for i in it.permutations(range(0,6), 10) if sum(i)==10]
df = pd.DataFrame(data=permutations,columns=['x1','x2','x3','x4','x5','x6','x7','x8','x9','x10'])
问题是df 中有零行。数组permutations 为空。我不明白为什么会这样。如果我将it.permutations 替换为it.combinations_with_replacement,结果列表的长度为30。为什么it.permutations 什么都不返回?
【问题讨论】:
标签: python permutation itertools